From 362e581c75fdbede0cec95b5d97f502769955f21 Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Wed, 23 Jul 2025 10:15:28 -0400 Subject: [PATCH 01/18] Overview of ASP.NET Core updates --- aspnetcore/blazor/advanced-scenarios.md | 2 +- .../fundamentals/choose-aspnet-framework.md | 2 +- aspnetcore/fundamentals/index.md | 52 ++++ .../fundamentals/minimal-apis/overview.md | 3 +- aspnetcore/includes/benefits.md | 66 ++++- aspnetcore/includes/bind-get.md | 2 +- aspnetcore/introduction-to-aspnet-core.md | 246 +++++------------- aspnetcore/release-notes/aspnetcore-1.1.md | 2 +- aspnetcore/release-notes/aspnetcore-2.0.md | 2 +- cspell.json | 2 + 10 files changed, 191 insertions(+), 188 deletions(-) diff --git a/aspnetcore/blazor/advanced-scenarios.md b/aspnetcore/blazor/advanced-scenarios.md index 81806ed2f997..b50c23d5f6fd 100644 --- a/aspnetcore/blazor/advanced-scenarios.md +++ b/aspnetcore/blazor/advanced-scenarios.md @@ -142,5 +142,5 @@ This is a trivial example. In more realistic cases with complex and deeply neste * The necessary information doesn't exist to permit the framework to generate sequence numbers automatically at runtime unless the information is captured at compile time. * Don't write long blocks of manually-implemented logic. Prefer `.razor` files and allow the compiler to deal with the sequence numbers. If you're unable to avoid manual logic, split long blocks of code into smaller pieces wrapped in / calls. Each region has its own separate space of sequence numbers, so you can restart from zero (or any other arbitrary number) inside each region. * If sequence numbers are hardcoded, the diff algorithm only requires that sequence numbers increase in value. The initial value and gaps are irrelevant. One legitimate option is to use the code line number as the sequence number, or start from zero and increase by ones or hundreds (or any preferred interval). -* For loops, the sequence numbers should increase in your source code, not in terms of runtime behavior. The fact that, at runtime, the numbers repeat is how the diffing system realises you're in a loop. +* For loops, the sequence numbers should increase in your source code, not in terms of runtime behavior. The fact that, at runtime, the numbers repeat is how the diffing system realizes you're in a loop. * Blazor uses sequence numbers, while other tree-diffing UI frameworks don't use them. Diffing is far faster when sequence numbers are used, and Blazor has the advantage of a compile step that deals with sequence numbers automatically for developers authoring `.razor` files. diff --git a/aspnetcore/fundamentals/choose-aspnet-framework.md b/aspnetcore/fundamentals/choose-aspnet-framework.md index 5ee7e1746b9c..8c18b0ea78c2 100644 --- a/aspnetcore/fundamentals/choose-aspnet-framework.md +++ b/aspnetcore/fundamentals/choose-aspnet-framework.md @@ -34,7 +34,7 @@ The following table compares ASP.NET Core to ASP.NET 4.x. |Higher performance than ASP.NET 4.x|Good performance| |[Use .NET Core runtime](/dotnet/standard/choosing-core-framework-server)|Use .NET Framework runtime| -See [ASP.NET Core targeting .NET Framework](xref:index#target-framework) for information on ASP.NET Core 2.x support on .NET Framework. +See [ASP.NET Core targeting .NET Framework](xref:index#aspnet-core-target-frameworks) for information on ASP.NET Core 2.x support on .NET Framework. ## ASP.NET Core scenarios diff --git a/aspnetcore/fundamentals/index.md b/aspnetcore/fundamentals/index.md index 9c7afc79f800..19dbc1fc780c 100644 --- a/aspnetcore/fundamentals/index.md +++ b/aspnetcore/fundamentals/index.md @@ -18,6 +18,58 @@ This article provides an overview of the fundamentals for building ASP.NET Core For Blazor fundamentals guidance, which adds to or supersedes the guidance in this article, see . +## How to download a sample + +Many of the articles and tutorials include links to sample code. + +1. [Download the ASP.NET repository zip file](https://codeload.github.com/dotnet/AspNetCore.Docs/zip/main). +1. Unzip the `AspNetCore.Docs-main.zip` file. +1. To access an article's sample app in the unzipped repository, use the URL in the article's sample link to help you navigate to the sample's folder. Usually, an article's sample link appears at the top of the article with the link text *View or download sample code*. + +### Preprocessor directives in sample code + +To demonstrate multiple scenarios, sample apps use the `#define` and `#if-#else/#elif-#endif` preprocessor directives to selectively compile and run different sections of sample code. For those samples that make use of this approach, set the `#define` directive at the top of the C# files to define the symbol associated with the scenario that you want to run. Some samples require defining the symbol at the top of multiple files in order to run a scenario. + +For example, the following `#define` symbol list indicates that four scenarios are available (one scenario per symbol). The current sample configuration runs the `TemplateCode` scenario: + +```csharp +#define TemplateCode // or LogFromMain or ExpandDefault or FilterInCode +``` + +To change the sample to run the `ExpandDefault` scenario, define the `ExpandDefault` symbol and leave the remaining symbols commented-out: + +```csharp +#define ExpandDefault // TemplateCode or LogFromMain or FilterInCode +``` + +For more information on using [C# preprocessor directives](/dotnet/csharp/language-reference/preprocessor-directives/) to selectively compile sections of code, see [#define (C# Reference)](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-define) and [#if (C# Reference)](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-if). + +### Regions in sample code + +Some sample apps contain sections of code surrounded by [#region](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-region) and [#endregion](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-endregion) C# directives. The documentation build system injects these regions into the rendered documentation topics. + +Region names usually contain the word "snippet." The following example shows a region named `snippet_WebHostDefaults`: + +```csharp +#region snippet_WebHostDefaults +Host.CreateDefaultBuilder(args) + .ConfigureWebHostDefaults(webBuilder => + { + webBuilder.UseStartup(); + }); +#endregion +``` + +The preceding C# code snippet is referenced in the topic's markdown file with the following line: + +```md +[!code-csharp[](sample/SampleApp/Program.cs?name=snippet_WebHostDefaults)] +``` + +You may safely ignore or remove the `#region` and `#endregion` directives that surround the code. Don't alter the code within these directives if you plan to run the sample scenarios described in the topic. + +For more information, see [Contribute to the ASP.NET documentation: Code snippets](https://github.com/dotnet/AspNetCore.Docs/blob/main/CONTRIBUTING.md#code-snippets). + ## Program.cs ASP.NET Core apps created with the web templates contain the application startup code in the `Program.cs` file. The `Program.cs` file is where: diff --git a/aspnetcore/fundamentals/minimal-apis/overview.md b/aspnetcore/fundamentals/minimal-apis/overview.md index adb142043d88..55eed08eac1b 100644 --- a/aspnetcore/fundamentals/minimal-apis/overview.md +++ b/aspnetcore/fundamentals/minimal-apis/overview.md @@ -11,8 +11,7 @@ uid: fundamentals/minimal-apis/overview [!INCLUDE[](~/includes/not-latest-version.md)] -Minimal APIs are a simplified approach for building fast HTTP APIs with ASP.NET Core. -You can build fully functioning REST endpoints with minimal code and configuration. Skip traditional scaffolding and avoid unnecessary controllers by fluently declaring API routes and actions. For example, the following code creates an API at the root of the web app that returns the text, `"Hello World!"`. +Minimal APIs are a simplified approach for building fast HTTP APIs with ASP.NET Core. You can build fully functioning REST endpoints with minimal code and configuration. Skip traditional scaffolding and avoid unnecessary controllers by fluently declaring API routes and actions. For example, the following code creates an API at the root of a web app that returns a greeting: ```csharp var app = WebApplication.Create(args); diff --git a/aspnetcore/includes/benefits.md b/aspnetcore/includes/benefits.md index e0d9d996a000..4262a7d1791b 100644 --- a/aspnetcore/includes/benefits.md +++ b/aspnetcore/includes/benefits.md @@ -1,17 +1,48 @@ ASP.NET Core provides the following benefits: -* A unified story for building web UI and web APIs. +:::moniker range=">= aspnetcore-6.0" + + + +* A unified story for building web apps, web APIs, Azure IoT (Internet of Things) apps, and mobile backends. +* Architected for testability. +* [Blazor](xref:blazor/index) lets you create rich interactive client-side UIs using [.NET](/dotnet/standard/tour)/[C#](/dotnet/csharp/) with wide browser support based on HTML/JavaScript, including mobile browsers. You can also build hybrid desktop and mobile apps with .NET and Blazor. +* [Minimal APIs](xref:fundamentals/minimal-apis) are a simplified approach for building fast web APIs with minimal code and configuration by fluently declaring API routes and actions. +* Supports [Razor Pages](xref:razor-pages/index) and [Model-View-Controller (MVC)](xref:mvc/overview) app development. +* Ability to develop and run on Windows, macOS, and Linux. +* Open-source and [community-focused](https://live.asp.net/). +* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). +* Support for hosting Remote Procedure Call (RPC) services using [gRPC](xref:grpc/index). +* A cloud-ready, environment-based [configuration system](xref:fundamentals/configuration/index). +* Built-in [dependency injection](xref:fundamentals/dependency-injection). +* A lightweight, [high-performance](https://github.com/aspnet/benchmarks), and modular HTTP request pipeline. +* Ability to host in the cloud or on-premises with the following: + * [Kestrel](xref:fundamentals/servers/kestrel) + * [IIS](xref:host-and-deploy/iis/index) + * [HTTP.sys](xref:fundamentals/servers/httpsys) + * [Nginx](xref:host-and-deploy/linux-nginx) + * [Docker](xref:host-and-deploy/docker/index) +* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#side-by-side-net-versions-per-application-level). +* Tooling that simplifies modern web development. + +:::moniker-end + +:::moniker range=">= aspnetcore-3.0 < aspnetcore-6.0" + + + +* A unified story for building web apps, web APIs, Azure IoT (Internet of Things) apps, and mobile backends. * Architected for testability. -* [Blazor](xref:blazor/index) lets you use C# in the browser alongside JavaScript. Share server-side and client-side app logic all written with .NET. -* [Razor Pages](xref:razor-pages/index) makes coding page-focused scenarios easier and more productive. +* [Blazor](xref:blazor/index) lets you create rich interactive client-side UIs using [.NET](/dotnet/standard/tour)/[C#](/dotnet/csharp/) with wide browser support based on HTML/JavaScript, including mobile browsers. You can also build hybrid desktop and mobile apps with .NET and Blazor. +* Supports [Razor Pages](xref:razor-pages/index) and [Model-View-Controller (MVC)](xref:mvc/overview) app development. * Ability to develop and run on Windows, macOS, and Linux. * Open-source and [community-focused](https://live.asp.net/). -* Integration of [modern, client-side frameworks](xref:blazor/index) and development workflows. +* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). * Support for hosting Remote Procedure Call (RPC) services using [gRPC](xref:grpc/index). * A cloud-ready, environment-based [configuration system](xref:fundamentals/configuration/index). * Built-in [dependency injection](xref:fundamentals/dependency-injection). * A lightweight, [high-performance](https://github.com/aspnet/benchmarks), and modular HTTP request pipeline. -* Ability to host on the following: +* Ability to host in the cloud or on-premises with the following: * [Kestrel](xref:fundamentals/servers/kestrel) * [IIS](xref:host-and-deploy/iis/index) * [HTTP.sys](xref:fundamentals/servers/httpsys) @@ -19,3 +50,28 @@ ASP.NET Core provides the following benefits: * [Docker](xref:host-and-deploy/docker/index) * [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#side-by-side-net-versions-per-application-level). * Tooling that simplifies modern web development. + +:::moniker-end + +:::moniker range="< aspnetcore-3.0" + +* A unified story for building web apps, web APIs, Azure IoT (Internet of Things) apps, and mobile backends. +* Architected for testability. +* Supports [Razor Pages](xref:razor-pages/index) and [Model-View-Controller (MVC)](xref:mvc/overview) app development. +* Ability to develop and run on Windows, macOS, and Linux. +* Open-source and [community-focused](https://live.asp.net/). +* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). +* Support for hosting Remote Procedure Call (RPC) services using [gRPC](xref:grpc/index). +* A cloud-ready, environment-based [configuration system](xref:fundamentals/configuration/index). +* Built-in [dependency injection](xref:fundamentals/dependency-injection). +* A lightweight, [high-performance](https://github.com/aspnet/benchmarks), and modular HTTP request pipeline. +* Ability to host in the cloud or on-premises with the following: + * [Kestrel](xref:fundamentals/servers/kestrel) + * [IIS](xref:host-and-deploy/iis/index) + * [HTTP.sys](xref:fundamentals/servers/httpsys) + * [Nginx](xref:host-and-deploy/linux-nginx) + * [Docker](xref:host-and-deploy/docker/index) +* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#side-by-side-net-versions-per-application-level). +* Tooling that simplifies modern web development. + +:::moniker-end diff --git a/aspnetcore/includes/bind-get.md b/aspnetcore/includes/bind-get.md index 9b668d05047d..521c2c74ccd0 100644 --- a/aspnetcore/includes/bind-get.md +++ b/aspnetcore/includes/bind-get.md @@ -7,4 +7,4 @@ > [BindProperty(SupportsGet = true)] > ``` > -> For more information, see [ASP.NET Core Community Standup: Bind on GET discussion (YouTube)](https://www.youtube.com/watch?v=p7iHB9V-KVU&feature=youtu.be&t=54m27s). +> For more information, see [ASP.NET Community Standup: Bind on GET discussion (YouTube)](https://www.youtube.com/watch?v=p7iHB9V-KVU&feature=youtu.be&t=54m27s). diff --git a/aspnetcore/introduction-to-aspnet-core.md b/aspnetcore/introduction-to-aspnet-core.md index 7556021c4c12..d837e93fc90f 100644 --- a/aspnetcore/introduction-to-aspnet-core.md +++ b/aspnetcore/introduction-to-aspnet-core.md @@ -4,50 +4,42 @@ author: tdykstra description: Get an overview of ASP.NET Core, a cross-platform, high-performance, open-source framework for building modern, cloud-enabled, Internet-connected apps. ms.author: tdykstra ms.custom: mvc -ms.date: 06/21/2025 +ms.date: 07/23/2025 uid: index --- # Overview of ASP.NET Core -By [Daniel Roth](https://github.com/danroth27), [Rick Anderson](https://twitter.com/RickAndMSFT), and [Shaun Luttin](https://mvp.microsoft.com/en-us/PublicProfile/5001182) - [!INCLUDE[](~/includes/not-latest-version.md)] -:::moniker range=">= aspnetcore-3.0" +ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern web apps. It is built for large-scale app development and can handle any size workload, making it a robust choice for enterprise-level apps. -ASP.NET Core is a cross-platform, high-performance framework for building modern web applications. This [open-source](https://github.com/dotnet/aspnetcore) framework allows developers to create web applications, services, and APIs that can run on Windows, macOS, and Linux. It is built for large-scale app development and can handle any size workload, making it a robust choice for enterprise-level applications. +[!INCLUDE[](~/includes/benefits.md)] -With ASP.NET Core, you can: +## Build web apps and web APIs -* Build web apps and services, [Azure IoT (Internet of Things)](https://azure.microsoft.com/solutions/iot) apps, and mobile backends. -* Use your favorite development tools on Windows, macOS, and Linux. -* Deploy to the cloud or on-premises. -* Run on [.NET](/dotnet/core/introduction). +Use ASP.NET Core to build web apps with: -## Why choose ASP.NET Core? +:::moniker range=">= aspnetcore-6.0" -Millions of developers use or have used [ASP.NET 4.x](/aspnet/overview) to create web apps. ASP.NET Core is a redesign of ASP.NET 4.x, including architectural changes that result in a leaner, more modular framework. +* [Blazor](xref:blazor/index), a component-based web UI framework based on C# that supports both server-side rendering via the .NET runtime and client-side rendering via WebAssembly. +* [Minimal APIs](xref:fundamentals/minimal-apis), a simplified approach for building fast web APIs with minimal code and configuration by fluently declaring API routes and actions. -[!INCLUDE[](~/includes/benefits.md)] +:::moniker-end -## Build web APIs and web UI using ASP.NET Core MVC +:::moniker range=">= aspnetcore-3.0 < aspnetcore-6.0" -ASP.NET Core MVC provides features to build [web APIs](xref:tutorials/first-web-api) and [web apps](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro): +* [Blazor](xref:blazor/index), a component-based web UI framework based on C# that supports both server-side rendering via the .NET runtime and client-side rendering via WebAssembly. +* [Razor Pages](xref:razor-pages/index), a page-based programming model that makes building web UI easier and more productive. +* [Model-View-Controller (MVC)](xref:mvc/overview), a traditional framework for building web apps and web APIs using the [Model-View-Controller design pattern](https://developer.mozilla.org/docs/Glossary/MVC). -* The [Model-View-Controller (MVC) pattern](xref:mvc/overview) helps make your web APIs and web apps testable. -* [Blazor](xref:blazor/index), a component-based web UI framework based on C# that supports both server-side rendering and client-side rendering via WebAssembly. -* [Razor Pages](xref:razor-pages/index) is a page-based programming model that makes building web UI easier and more productive. -* [Razor markup](xref:mvc/views/razor) provides a productive syntax for [Razor Pages](xref:razor-pages/index) and [MVC views](xref:mvc/views/overview). -* [Tag Helpers](xref:mvc/views/tag-helpers/intro) enable server-side code to participate in creating and rendering HTML elements in Razor files. -* Built-in support for [multiple data formats and content negotiation](xref:web-api/advanced/formatting) lets your web APIs reach a broad range of clients, including browsers and mobile devices. -* [Model binding](xref:mvc/models/model-binding) automatically maps data from HTTP requests to action method parameters. -* [Model validation](xref:mvc/models/validation) automatically performs client-side and server-side validation. +:::moniker-end -## Client-side development +:::moniker range="< aspnetcore-3.0" -ASP.NET Core includes [Blazor](xref:blazor/index) for building richly interactive web UI, and also integrates with other popular frontend JavaScript frameworks like [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). For more information, see and related topics under *Client-side development*. +* [Razor Pages](xref:razor-pages/index), a page-based programming model that makes building web UI easier and more productive. +* [Model-View-Controller (MVC)](xref:mvc/overview), a traditional framework for building web apps and web APIs using the [Model-View-Controller design pattern](https://developer.mozilla.org/docs/Glossary/MVC). - +:::moniker-end ## ASP.NET Core target frameworks @@ -55,195 +47,97 @@ ASP.NET Core 3.x or later can only target .NET. There are several advantages to targeting .NET, and these advantages increase with each release. Some advantages of .NET over .NET Framework include: -* Cross-platform. Runs on Windows, macOS, and Linux. +* Cross-platform on Windows, macOS, and Linux * Improved performance * [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#side-by-side-net-versions-per-application-level) * New APIs * Open source -## Recommended learning path - -We recommend the following sequence of tutorials for an introduction to developing ASP.NET Core apps: - -1. Follow a tutorial for the app type you want to develop or maintain. - - |App type |Scenario |Tutorial | - |----------|----------|----------| - |Web app | Client-side web UI development |[Get started with Blazor](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro) | - |Web app | New server-side web UI development |[Get started with Razor Pages](xref:tutorials/razor-pages/razor-pages-start) | - |Web app | Maintaining an MVC app |[Get started with MVC](xref:tutorials/first-mvc-app/start-mvc)| - |Web API | RESTful HTTP services |[Create a web API](xref:tutorials/first-web-api)† | - |Remote Procedure Call app | Contract-first services using Protocol Buffers |[Get started with a gRPC service](xref:tutorials/grpc/grpc-start) | - |Real-time app | Bidirectional communication between servers and connected clients |[Get started with SignalR](xref:tutorials/signalr) | - -1. Follow a tutorial that shows how to do basic data access. - - |Scenario |Tutorial | - |----------|----------| - |New development |[Blazor with Entity Framework Core](xref:blazor/tutorials/movie-database-app/index) | - |New development |[Razor Pages with Entity Framework Core](xref:data/ef-rp/intro) | - |Maintaining an MVC app |[MVC with Entity Framework Core](xref:data/ef-mvc/intro) | - -1. Read an overview of ASP.NET Core [fundamentals](xref:fundamentals/index) that apply to all app types. - -1. Browse the table of contents for other topics of interest. - -†There's also an [interactive web API tutorial](/training/modules/build-web-api-net-core). No local installation of development tools is required. The code runs in an [Azure Cloud Shell](https://azure.microsoft.com/features/cloud-shell/) in your browser, and [curl](https://curl.haxx.se/) is used for testing. - -## Migrate from .NET Framework - -For a reference guide to migrating ASP.NET 4.x apps to ASP.NET Core, see . - -:::moniker-end - -:::moniker range="< aspnetcore-3.0" - -ASP.NET Core is a cross-platform, high-performance, [open-source](https://github.com/dotnet/aspnetcore) framework for building modern, cloud-enabled, Internet-connected apps. With ASP.NET Core, you can: - -* Build web apps and services, [Azure IoT (Internet of Things)](https://azure.microsoft.com/solutions/iot) apps, and mobile backends. -* Use your favorite development tools on Windows, macOS, and Linux. -* Deploy to the cloud or on-premises. -* Run on [.NET Core or .NET Framework](/dotnet/articles/standard/choosing-core-framework-server). - -## Why choose ASP.NET Core? - -Millions of developers use or have used [ASP.NET 4.x](/aspnet/overview) to create web apps. ASP.NET Core is a redesign of ASP.NET 4.x, with architectural changes that result in a leaner, more modular framework. - -[!INCLUDE[](~/includes/benefits.md)] - -## Build web APIs and web UI using ASP.NET Core MVC - -ASP.NET Core MVC provides features to build [web APIs](xref:tutorials/first-web-api) and [web apps](xref:tutorials/razor-pages/index): - -* The [Model-View-Controller (MVC) pattern](xref:mvc/overview) helps make your web APIs and web apps testable. -* [Razor Pages](xref:razor-pages/index) is a page-based programming model that makes building web UI easier and more productive. -* [Razor markup](xref:mvc/views/razor) provides a productive syntax for [Razor Pages](xref:razor-pages/index) and [MVC views](xref:mvc/views/overview). -* [Tag Helpers](xref:mvc/views/tag-helpers/intro) enable server-side code to participate in creating and rendering HTML elements in Razor files. -* Built-in support for [multiple data formats and content negotiation](xref:web-api/advanced/formatting) lets your web APIs reach a broad range of clients, including browsers and mobile devices. -* [Model binding](xref:mvc/models/model-binding) automatically maps data from HTTP requests to action method parameters. -* [Model validation](xref:mvc/models/validation) automatically performs client-side and server-side validation. - -## Client-side development - -ASP.NET Core integrates seamlessly with popular client-side frameworks and libraries, including [Blazor](xref:blazor/index), [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). For more information, see and related topics under *Client-side development*. - - - -## ASP.NET Core targeting .NET Framework - -ASP.NET Core 2.x can target .NET Core or .NET Framework. ASP.NET Core apps targeting .NET Framework aren't cross-platform—they run on Windows only. Generally, ASP.NET Core 2.x is made up of [.NET Standard](/dotnet/standard/net-standard) libraries. Libraries written with .NET Standard 2.0 run on any [.NET platform that implements .NET Standard 2.0](/dotnet/standard/net-standard#net-implementation-support). +ASP.NET Core 2.x can target .NET Core or .NET Framework. ASP.NET Core apps targeting .NET Framework aren't cross-platform and only run on Windows. Generally, ASP.NET Core 2.x is made up of [.NET Standard](/dotnet/standard/net-standard) libraries. Libraries written with .NET Standard 2.0 run on any [.NET platform that implements .NET Standard 2.0](/dotnet/standard/net-standard#net-implementation-support). ASP.NET Core 2.x is supported on .NET Framework versions that implement .NET Standard 2.0: * .NET Framework latest version is recommended. * .NET Framework 4.6.1 or later. -ASP.NET Core 3.0 or later only run on .NET Core. For more details regarding this change, see [A first look at changes coming in ASP.NET Core 3.0](https://blogs.msdn.microsoft.com/webdev/2018/10/29/a-first-look-at-changes-coming-in-asp-net-core-3-0/). - -There are several advantages to targeting .NET Core, and these advantages increase with each release. Some advantages of .NET Core over .NET Framework include: - -* Cross-platform. Runs on macOS, Linux, and Windows. -* Improved performance -* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#side-by-side-net-versions-per-application-level) -* New APIs -* Open source - -To help close the API gap from .NET Framework to .NET Core, the [Windows Compatibility Pack](/dotnet/core/porting/windows-compat-pack) made thousands of Windows-only APIs available in .NET Core. These APIs weren't available in .NET Core 1.x. +To help close the API gap from .NET Framework to .NET Core 2.x, the [Windows Compatibility Pack](/dotnet/core/porting/windows-compat-pack) made thousands of Windows-only APIs available. These APIs weren't available in .NET Core 1.x. ## Recommended learning path -We recommend the following sequence of tutorials and articles for an introduction to developing ASP.NET Core apps: - -1. Follow a tutorial for the type of app you want to develop or maintain. - - |App type |Scenario |Tutorial | - |----------|----------|----------| - |Web app | For new development |[Get started with Razor Pages](xref:tutorials/razor-pages/razor-pages-start) | - |Web app | For maintaining an MVC app |[Get started with MVC](xref:tutorials/first-mvc-app/start-mvc)| - |Web API | |[Create a web API](xref:tutorials/first-web-api)† | - |Real-time app | |[Get started with SignalR](xref:tutorials/signalr) | +We recommend the following sequence of tutorials for an introduction to developing ASP.NET Core apps, or select the appropriate tutorial for the type of app that you know you want to develop. -1. Follow a tutorial that shows how to do basic data access. +Our tutorial for new developers and developers new to .NET is . - |Scenario |Tutorial | - |----------|----------| - | For new development |[Razor Pages with Entity Framework Core](xref:data/ef-rp/intro) | - | For maintaining an MVC app |[MVC with Entity Framework Core](xref:data/ef-mvc/intro) | +:::moniker range=">= aspnetcore-6.0" -1. Read an overview of ASP.NET Core [fundamentals](xref:fundamentals/index) that apply to all app types. - -1. Browse the Table of Contents for other topics of interest. - -†There's also a [web API tutorial that you follow entirely in the browser](/training/modules/build-web-api-net-core), no local IDE installation required. The code runs in an [Azure Cloud Shell](https://azure.microsoft.com/features/cloud-shell/), and [curl](https://curl.haxx.se/) is used for testing. - -## Migrate from .NET Framework - -For a reference guide to migrating ASP.NET apps to ASP.NET Core, see . +App type | Scenario | Tutorial +-------- | -------- | -------- +Web app | New server and client web development with Blazor - ***Recommended*** | [Build your first web app with ASP.NET Core using Blazor (Interactive Online Learn Module)](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro) or [Build your first web app with Blazor (Visual Studio or Visual Studio Code)](/training/modules/build-your-first-blazor-web-app/) +Web app | New server-side web development with Razor Pages | +Web app | New server-side web development with MVC | +Web API | Server-based data processing with Minimal APIs - ***Recommended*** | and [Build a web API with minimal API, ASP.NET Core, and .NET (.NET SDK)](/training/modules/build-web-api-minimal-api/) +Remote Procedure Call (RPC) app | Contract-first services using Protocol Buffers | +Real-time app | Server/client bidirectional communication | :::moniker-end -## How to download a sample - -Many of the articles and tutorials include links to sample code. +:::moniker range=">= aspnetcore-3.0 < aspnetcore-6.0" -1. [Download the ASP.NET repository zip file](https://codeload.github.com/dotnet/AspNetCore.Docs/zip/main). -1. Unzip the `AspNetCore.Docs-main.zip` file. -1. To access an article's sample app in the unzipped repository, use the URL in the article's sample link to help you navigate to the sample's folder. Usually, an article's sample link appears at the top of the article with the link text *View or download sample code*. +App type | Scenario | Tutorial +-------- | -------- | -------- +Web app | New server and client web development with Blazor - ***Recommended*** | [Build your first web app with ASP.NET Core using Blazor (Interactive Online Learn Module)](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro) or [Build your first web app with Blazor (Visual Studio or Visual Studio Code)](/training/modules/build-your-first-blazor-web-app/) +Web app | New server-side web development with Razor Pages | +Web app | New server-side web development with MVC | +Web API | Server-based data processing | and [Create a web API with ASP.NET Core controllers (.NET SDK)](/training/modules/build-web-api-aspnet-core/) +Remote Procedure Call (RPC) app | Contract-first services using Protocol Buffers | +Real-time app | Server/client bidirectional communication | -### Preprocessor directives in sample code +:::moniker-end -To demonstrate multiple scenarios, sample apps use the `#define` and `#if-#else/#elif-#endif` preprocessor directives to selectively compile and run different sections of sample code. For those samples that make use of this approach, set the `#define` directive at the top of the C# files to define the symbol associated with the scenario that you want to run. Some samples require defining the symbol at the top of multiple files in order to run a scenario. +:::moniker range="< aspnetcore-3.0" -For example, the following `#define` symbol list indicates that four scenarios are available (one scenario per symbol). The current sample configuration runs the `TemplateCode` scenario: +App type | Scenario | Tutorial +-------- | -------- | -------- +Web app | New web development | +Web app | New server-side web development with MVC | +Web API | Server-based data processing | and [Create a web API with ASP.NET Core controllers (.NET SDK)](/training/modules/build-web-api-aspnet-core/) +Real-time app | Server/client bidirectional communication | -```csharp -#define TemplateCode // or LogFromMain or ExpandDefault or FilterInCode -``` +:::moniker-end -To change the sample to run the `ExpandDefault` scenario, define the `ExpandDefault` symbol and leave the remaining symbols commented-out: +The tutorials in the following table teach data access concepts. -```csharp -#define ExpandDefault // TemplateCode or LogFromMain or FilterInCode -``` +:::moniker range=">= aspnetcore-3.0" -For more information on using [C# preprocessor directives](/dotnet/csharp/language-reference/preprocessor-directives/) to selectively compile sections of code, see [#define (C# Reference)](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-define) and [#if (C# Reference)](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-if). +Scenario | Tutorial +-------- | -------- +New development with Blazor | +New development with Razor Pages | +New development with MVC | - +For a reference guide on migrating ASP.NET 4.x apps to ASP.NET Core, see . ## Breaking changes and security advisories [!INCLUDE[](~/includes/announcements.md)] -## Next steps - -For more information, see the following resources: +## .NET Live TV -* [Get started with Blazor](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro) -* -* -* [ASP.NET Core fundamentals](xref:fundamentals/index) -* [The weekly ASP.NET community standup](https://live.asp.net/) covers the team's progress and plans. It features new blogs and third-party software. +[.NET Live TV](https://dotnet.microsoft.com/live) covers the .NET team's progress and plans. It features new blogs and third-party software. diff --git a/aspnetcore/release-notes/aspnetcore-1.1.md b/aspnetcore/release-notes/aspnetcore-1.1.md index e74f5791cc4a..d2a56cfafa70 100644 --- a/aspnetcore/release-notes/aspnetcore-1.1.md +++ b/aspnetcore/release-notes/aspnetcore-1.1.md @@ -29,4 +29,4 @@ ASP.NET Core 1.1 has more features than ASP.NET Core 1.0. In general, we recomme ## Additional Information * [ASP.NET Core 1.1.0 Release Notes](https://github.com/dotnet/aspnetcore/releases/tag/1.1.0) -* To connect with the ASP.NET Core development team's progress and plans, tune in to the [ASP.NET Community Standup](https://live.asp.net/). +* To connect with the ASP.NET Core development team's progress and plans, tune in to [.NET Live TV](https://live.asp.net/). diff --git a/aspnetcore/release-notes/aspnetcore-2.0.md b/aspnetcore/release-notes/aspnetcore-2.0.md index 3350f81e8492..40125386d512 100644 --- a/aspnetcore/release-notes/aspnetcore-2.0.md +++ b/aspnetcore/release-notes/aspnetcore-2.0.md @@ -153,4 +153,4 @@ For guidance on how to migrate ASP.NET Core 1.x applications to ASP.NET Core 2.0 For the complete list of changes, see the [ASP.NET Core 2.0 Release Notes](https://github.com/dotnet/aspnetcore/releases/tag/2.0.0). -To connect with the ASP.NET Core development team's progress and plans, tune in to the [ASP.NET Community Standup](https://live.asp.net/). +To connect with the ASP.NET Core development team's progress and plans, tune in to [.NET Live TV](https://dotnet.microsoft.com/live). diff --git a/cspell.json b/cspell.json index 594f84f0a120..8fd0c98044cc 100644 --- a/cspell.json +++ b/cspell.json @@ -43,6 +43,7 @@ "routable", "Routable", "signalr", + "tdykstra", "typeof", "wadepickett", "wasm", @@ -51,6 +52,7 @@ "webforms", "websocket", "websockets", + "wpickett", "wwwroot" ], "flagWords": [ From cae4bc7d7c3e4fe3ff550480b277690d87df9c86 Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Thu, 24 Jul 2025 09:40:23 -0400 Subject: [PATCH 02/18] Updates --- aspnetcore/includes/benefits.md | 22 ++-- aspnetcore/introduction-to-aspnet-core.md | 134 ++++++++++++++++++++-- 2 files changed, 137 insertions(+), 19 deletions(-) diff --git a/aspnetcore/includes/benefits.md b/aspnetcore/includes/benefits.md index 4262a7d1791b..df4bbdc8178e 100644 --- a/aspnetcore/includes/benefits.md +++ b/aspnetcore/includes/benefits.md @@ -2,11 +2,12 @@ ASP.NET Core provides the following benefits: :::moniker range=">= aspnetcore-6.0" - + * A unified story for building web apps, web APIs, Azure IoT (Internet of Things) apps, and mobile backends. * Architected for testability. -* [Blazor](xref:blazor/index) lets you create rich interactive client-side UIs using [.NET](/dotnet/standard/tour)/[C#](/dotnet/csharp/) with wide browser support based on HTML/JavaScript, including mobile browsers. You can also build hybrid desktop and mobile apps with .NET and Blazor. +* [Blazor](xref:blazor/index) lets you create rich interactive client-side UIs using [.NET](/dotnet/standard/tour) and [C#](/dotnet/csharp/) with wide browser support based on HTML/JavaScript, including mobile browsers. You can also build hybrid desktop and mobile apps with .NET and Blazor. * [Minimal APIs](xref:fundamentals/minimal-apis) are a simplified approach for building fast web APIs with minimal code and configuration by fluently declaring API routes and actions. * Supports [Razor Pages](xref:razor-pages/index) and [Model-View-Controller (MVC)](xref:mvc/overview) app development. * Ability to develop and run on Windows, macOS, and Linux. @@ -18,18 +19,21 @@ ASP.NET Core provides the following benefits: * A lightweight, [high-performance](https://github.com/aspnet/benchmarks), and modular HTTP request pipeline. * Ability to host in the cloud or on-premises with the following: * [Kestrel](xref:fundamentals/servers/kestrel) + * [Azure App Service](https://azure.microsoft.com/products/app-service) * [IIS](xref:host-and-deploy/iis/index) * [HTTP.sys](xref:fundamentals/servers/httpsys) * [Nginx](xref:host-and-deploy/linux-nginx) * [Docker](xref:host-and-deploy/docker/index) -* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#side-by-side-net-versions-per-application-level). +* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#choose-net). * Tooling that simplifies modern web development. :::moniker-end :::moniker range=">= aspnetcore-3.0 < aspnetcore-6.0" - + * A unified story for building web apps, web APIs, Azure IoT (Internet of Things) apps, and mobile backends. * Architected for testability. @@ -44,20 +48,23 @@ ASP.NET Core provides the following benefits: * A lightweight, [high-performance](https://github.com/aspnet/benchmarks), and modular HTTP request pipeline. * Ability to host in the cloud or on-premises with the following: * [Kestrel](xref:fundamentals/servers/kestrel) + * [Azure App Service](https://azure.microsoft.com/products/app-service) * [IIS](xref:host-and-deploy/iis/index) * [HTTP.sys](xref:fundamentals/servers/httpsys) * [Nginx](xref:host-and-deploy/linux-nginx) * [Docker](xref:host-and-deploy/docker/index) -* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#side-by-side-net-versions-per-application-level). +* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#choose-net). * Tooling that simplifies modern web development. :::moniker-end :::moniker range="< aspnetcore-3.0" + + * A unified story for building web apps, web APIs, Azure IoT (Internet of Things) apps, and mobile backends. * Architected for testability. -* Supports [Razor Pages](xref:razor-pages/index) and [Model-View-Controller (MVC)](xref:mvc/overview) app development. +* Develop apps and APIs using [Razor Pages](xref:razor-pages/index) and [Model-View-Controller (MVC)](xref:mvc/overview) frameworks. * Ability to develop and run on Windows, macOS, and Linux. * Open-source and [community-focused](https://live.asp.net/). * Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). @@ -67,11 +74,12 @@ ASP.NET Core provides the following benefits: * A lightweight, [high-performance](https://github.com/aspnet/benchmarks), and modular HTTP request pipeline. * Ability to host in the cloud or on-premises with the following: * [Kestrel](xref:fundamentals/servers/kestrel) + * [Azure App Service](https://azure.microsoft.com/products/app-service) * [IIS](xref:host-and-deploy/iis/index) * [HTTP.sys](xref:fundamentals/servers/httpsys) * [Nginx](xref:host-and-deploy/linux-nginx) * [Docker](xref:host-and-deploy/docker/index) -* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#side-by-side-net-versions-per-application-level). +* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#choose-net). * Tooling that simplifies modern web development. :::moniker-end diff --git a/aspnetcore/introduction-to-aspnet-core.md b/aspnetcore/introduction-to-aspnet-core.md index d837e93fc90f..f3ce822a1f59 100644 --- a/aspnetcore/introduction-to-aspnet-core.md +++ b/aspnetcore/introduction-to-aspnet-core.md @@ -11,7 +11,7 @@ uid: index [!INCLUDE[](~/includes/not-latest-version.md)] -ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern web apps. It is built for large-scale app development and can handle any size workload, making it a robust choice for enterprise-level apps. +ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern web apps. The framework is built for large-scale app development and can handle any size workload, making it a robust choice for enterprise-level apps. [!INCLUDE[](~/includes/benefits.md)] @@ -49,11 +49,11 @@ There are several advantages to targeting .NET, and these advantages increase wi * Cross-platform on Windows, macOS, and Linux * Improved performance -* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#side-by-side-net-versions-per-application-level) +* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#choose-net) * New APIs * Open source -ASP.NET Core 2.x can target .NET Core or .NET Framework. ASP.NET Core apps targeting .NET Framework aren't cross-platform and only run on Windows. Generally, ASP.NET Core 2.x is made up of [.NET Standard](/dotnet/standard/net-standard) libraries. Libraries written with .NET Standard 2.0 run on any [.NET platform that implements .NET Standard 2.0](/dotnet/standard/net-standard#net-implementation-support). +ASP.NET Core 2.x can target .NET Core or .NET Framework. ASP.NET Core apps targeting .NET Framework aren't cross-platform and only run on Windows. Generally, ASP.NET Core 2.x is made up of [.NET Standard](/dotnet/standard/net-standard) libraries. Libraries written with .NET Standard 2.0 run on any [.NET platform that implements .NET Standard 2.0](/dotnet/standard/net-standard?tabs=net-standard-2-0#net-standard-versions). ASP.NET Core 2.x is supported on .NET Framework versions that implement .NET Standard 2.0: @@ -62,22 +62,27 @@ ASP.NET Core 2.x is supported on .NET Framework versions that implement .NET Sta To help close the API gap from .NET Framework to .NET Core 2.x, the [Windows Compatibility Pack](/dotnet/core/porting/windows-compat-pack) made thousands of Windows-only APIs available. These APIs weren't available in .NET Core 1.x. -## Recommended learning path +## Recommended learning path (TABLES LAYOUT OPTION) -We recommend the following sequence of tutorials for an introduction to developing ASP.NET Core apps, or select the appropriate tutorial for the type of app that you know you want to develop. + -Our tutorial for new developers and developers new to .NET is . +We recommend the following sequence of tutorials for an introduction to developing ASP.NET Core apps, or select the appropriate tutorial for a particular type of app that you want to build. + +Our tutorial for new developers and developers new to .NET is . :::moniker range=">= aspnetcore-6.0" + + App type | Scenario | Tutorial -------- | -------- | -------- -Web app | New server and client web development with Blazor - ***Recommended*** | [Build your first web app with ASP.NET Core using Blazor (Interactive Online Learn Module)](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro) or [Build your first web app with Blazor (Visual Studio or Visual Studio Code)](/training/modules/build-your-first-blazor-web-app/) -Web app | New server-side web development with Razor Pages | -Web app | New server-side web development with MVC | -Web API | Server-based data processing with Minimal APIs - ***Recommended*** | and [Build a web API with minimal API, ASP.NET Core, and .NET (.NET SDK)](/training/modules/build-web-api-minimal-api/) +Web app | New server and client web development with Blazor – ***Recommended*** | [Build your first web app with ASP.NET Core using Blazor (Interactive Online Learn Module)](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro) or [Build your first web app with Blazor (Visual Studio or Visual Studio Code)](/training/modules/build-your-first-blazor-web-app/) +Web API | Server-based data processing with Minimal APIs – ***Recommended*** | and [Build a web API with minimal API, ASP.NET Core, and .NET (.NET SDK)](/training/modules/build-web-api-minimal-api/) Remote Procedure Call (RPC) app | Contract-first services using Protocol Buffers | Real-time app | Server/client bidirectional communication | +Web app | New server-side web development with Razor Pages | +Web app | New server-side web development with MVC | :::moniker-end @@ -130,6 +135,108 @@ See the [ASP.NET Core fundamentals articles](xref:fundamentals/index), which app Browse the table of contents for other topics of interest. +## Recommended learning path (SUBHEADING LAYOUT OPTION) + + + +We recommend the following sequence of tutorials for an introduction to developing ASP.NET Core apps, or select the appropriate tutorial for a particular type of app that you want to build. + +Our tutorial for new developers and developers moving to .NET from other app development frameworks is . + +:::moniker range=">= aspnetcore-6.0" + +### Web apps + +* Interactive Online Learn Module: [Build your first web app with ASP.NET Core using Blazor](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro) +* Using [Visual Studio](https://visualstudio.microsoft.com/) or [Visual Studio Code](https://code.visualstudio.com/): [Build your first web app with Blazor](/training/modules/build-your-first-blazor-web-app/) + +### Web API apps + +* Using Visual Studio or Visual Studio Code: +* Using the .NET SDK: [Build a web API with minimal API, ASP.NET Core, and .NET](/training/modules/build-web-api-minimal-api/) + +### Remote Procedure Call (RPC) apps + + + +### Real-time, server/client bidirectional communication apps + + + +### Additional scenarios + +* +* + +:::moniker-end + +:::moniker range=">= aspnetcore-3.0 < aspnetcore-6.0" + +### Web apps + +* Interactive Online Learn Module: [Build your first web app with ASP.NET Core using Blazor](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro) +* Using Visual Studio or Visual Studio Code: [Build your first web app with Blazor](/training/modules/build-your-first-blazor-web-app/) + +### Web API apps + +* Using Visual Studio or Visual Studio Code: +* Using the .NET SDK: [Create a web API with ASP.NET Core controllers](/training/modules/build-web-api-aspnet-core/) + +### Remote Procedure Call (RPC) apps + + + +### Real-time, server/client bidirectional communication apps + + + +### Additional scenarios + +* +* + +:::moniker-end + +:::moniker range="< aspnetcore-3.0" + +### Web apps + +* +* + +### Web API apps + +* Using Visual Studio or Visual Studio Code: +* Using the .NET SDK: [Create a web API with ASP.NET Core controllers](/training/modules/build-web-api-aspnet-core/) + +### Real-time, server/client bidirectional communication apps + + + +:::moniker-end + +### Data access concepts + +:::moniker range=">= aspnetcore-3.0" + +* +* +* + +:::moniker-end + +:::moniker range="< aspnetcore-3.0" + +* +* + +:::moniker-end + +See the [ASP.NET Core fundamentals articles](xref:fundamentals/index), which apply to all app types. + +Browse the table of contents for other topics of interest. + ## Migrate from .NET Framework For a reference guide on migrating ASP.NET 4.x apps to ASP.NET Core, see . @@ -138,6 +245,9 @@ For a reference guide on migrating ASP.NET 4.x apps to ASP.NET Core, see Date: Thu, 24 Jul 2025 10:04:52 -0400 Subject: [PATCH 03/18] Update aspnetcore/release-notes/aspnetcore-1.1.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- aspnetcore/release-notes/aspnetcore-1.1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aspnetcore/release-notes/aspnetcore-1.1.md b/aspnetcore/release-notes/aspnetcore-1.1.md index d2a56cfafa70..2ff8495afb15 100644 --- a/aspnetcore/release-notes/aspnetcore-1.1.md +++ b/aspnetcore/release-notes/aspnetcore-1.1.md @@ -29,4 +29,4 @@ ASP.NET Core 1.1 has more features than ASP.NET Core 1.0. In general, we recomme ## Additional Information * [ASP.NET Core 1.1.0 Release Notes](https://github.com/dotnet/aspnetcore/releases/tag/1.1.0) -* To connect with the ASP.NET Core development team's progress and plans, tune in to [.NET Live TV](https://live.asp.net/). +* To connect with the ASP.NET Core development team's progress and plans, tune in to [.NET Live TV](https://dotnet.microsoft.com/live). From 119adc225148566423d04df2455e666f6959cb09 Mon Sep 17 00:00:00 2001 From: Luke Latham <1622880+guardrex@users.noreply.github.com> Date: Fri, 25 Jul 2025 05:52:06 -0400 Subject: [PATCH 04/18] Apply suggestions from code review Co-authored-by: Daniel Roth --- aspnetcore/fundamentals/minimal-apis/overview.md | 2 +- aspnetcore/includes/benefits.md | 13 +++++++------ aspnetcore/introduction-to-aspnet-core.md | 15 ++------------- aspnetcore/release-notes/aspnetcore-1.1.md | 2 +- aspnetcore/release-notes/aspnetcore-2.0.md | 2 +- 5 files changed, 12 insertions(+), 22 deletions(-) diff --git a/aspnetcore/fundamentals/minimal-apis/overview.md b/aspnetcore/fundamentals/minimal-apis/overview.md index 55eed08eac1b..1deb5a32a181 100644 --- a/aspnetcore/fundamentals/minimal-apis/overview.md +++ b/aspnetcore/fundamentals/minimal-apis/overview.md @@ -11,7 +11,7 @@ uid: fundamentals/minimal-apis/overview [!INCLUDE[](~/includes/not-latest-version.md)] -Minimal APIs are a simplified approach for building fast HTTP APIs with ASP.NET Core. You can build fully functioning REST endpoints with minimal code and configuration. Skip traditional scaffolding and avoid unnecessary controllers by fluently declaring API routes and actions. For example, the following code creates an API at the root of a web app that returns a greeting: +Minimal APIs are a simplified approach for building fast HTTP APIs with ASP.NET Core. You can build fully functioning REST endpoints with minimal code and configuration. For example, the following code creates an API at the root of a web app that returns a greeting: ```csharp var app = WebApplication.Create(args); diff --git a/aspnetcore/includes/benefits.md b/aspnetcore/includes/benefits.md index df4bbdc8178e..1d63d1c80ba0 100644 --- a/aspnetcore/includes/benefits.md +++ b/aspnetcore/includes/benefits.md @@ -5,15 +5,16 @@ ASP.NET Core provides the following benefits: -* A unified story for building web apps, web APIs, Azure IoT (Internet of Things) apps, and mobile backends. +* A unified story for building web apps, web APIs, IoT (Internet of Things) apps, and mobile backends. * Architected for testability. -* [Blazor](xref:blazor/index) lets you create rich interactive client-side UIs using [.NET](/dotnet/standard/tour) and [C#](/dotnet/csharp/) with wide browser support based on HTML/JavaScript, including mobile browsers. You can also build hybrid desktop and mobile apps with .NET and Blazor. -* [Minimal APIs](xref:fundamentals/minimal-apis) are a simplified approach for building fast web APIs with minimal code and configuration by fluently declaring API routes and actions. -* Supports [Razor Pages](xref:razor-pages/index) and [Model-View-Controller (MVC)](xref:mvc/overview) app development. +* Create rich interactive web UI with [Blazor](xref:blazor/index) using [C#](/dotnet/csharp/)—no JavaScript required. Reuse your Blazor components to build native mobile and desktop apps with [Blazor Hybrid](xref:blazor/hybrid/index). +* [Minimal APIs](xref:fundamentals/minimal-apis) are a simplified approach for building fast web APIs with minimal code and configuration by fluently declaring API routes and endpoints. * Ability to develop and run on Windows, macOS, and Linux. -* Open-source and [community-focused](https://live.asp.net/). +* Open-source and [community-focused](https://dotnet.microsoft.com/platform/community). * Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). -* Support for hosting Remote Procedure Call (RPC) services using [gRPC](xref:grpc/index). +* Add real-time web functionality to apps using [SignalR](xref:signalr/index). +* Support for hosting Remote Procedure Call (RPC) services using [gRPC](xref:grpc/introduction). +* Built-in security features for [authentication](xref:security/authentication/index) and [authorization](xref:security/authorization/introduction). * A cloud-ready, environment-based [configuration system](xref:fundamentals/configuration/index). * Built-in [dependency injection](xref:fundamentals/dependency-injection). * A lightweight, [high-performance](https://github.com/aspnet/benchmarks), and modular HTTP request pipeline. diff --git a/aspnetcore/introduction-to-aspnet-core.md b/aspnetcore/introduction-to-aspnet-core.md index f3ce822a1f59..ef2c45ba1db4 100644 --- a/aspnetcore/introduction-to-aspnet-core.md +++ b/aspnetcore/introduction-to-aspnet-core.md @@ -21,7 +21,7 @@ Use ASP.NET Core to build web apps with: :::moniker range=">= aspnetcore-6.0" -* [Blazor](xref:blazor/index), a component-based web UI framework based on C# that supports both server-side rendering via the .NET runtime and client-side rendering via WebAssembly. +* [Blazor](xref:blazor/index), a component-based web UI framework based on C# that supports both server-side rendering and client-side rendering via WebAssembly. * [Minimal APIs](xref:fundamentals/minimal-apis), a simplified approach for building fast web APIs with minimal code and configuration by fluently declaring API routes and actions. :::moniker-end @@ -62,7 +62,7 @@ ASP.NET Core 2.x is supported on .NET Framework versions that implement .NET Sta To help close the API gap from .NET Framework to .NET Core 2.x, the [Windows Compatibility Pack](/dotnet/core/porting/windows-compat-pack) made thousands of Windows-only APIs available. These APIs weren't available in .NET Core 1.x. -## Recommended learning path (TABLES LAYOUT OPTION) +## Tutorials to get started @@ -81,8 +81,6 @@ Web app | New server and client web development with Blazor – ***Recommend Web API | Server-based data processing with Minimal APIs – ***Recommended*** | and [Build a web API with minimal API, ASP.NET Core, and .NET (.NET SDK)](/training/modules/build-web-api-minimal-api/) Remote Procedure Call (RPC) app | Contract-first services using Protocol Buffers | Real-time app | Server/client bidirectional communication | -Web app | New server-side web development with Razor Pages | -Web app | New server-side web development with MVC | :::moniker-end @@ -117,8 +115,6 @@ The tutorials in the following table teach data access concepts. Scenario | Tutorial -------- | -------- New development with Blazor | -New development with Razor Pages | -New development with MVC | :::moniker-end @@ -237,13 +233,6 @@ See the [ASP.NET Core fundamentals articles](xref:fundamentals/index), which app Browse the table of contents for other topics of interest. -## Migrate from .NET Framework - -For a reference guide on migrating ASP.NET 4.x apps to ASP.NET Core, see . - -## Breaking changes and security advisories - -[!INCLUDE[](~/includes/announcements.md)] ## Additional resources diff --git a/aspnetcore/release-notes/aspnetcore-1.1.md b/aspnetcore/release-notes/aspnetcore-1.1.md index 2ff8495afb15..077a55c043c8 100644 --- a/aspnetcore/release-notes/aspnetcore-1.1.md +++ b/aspnetcore/release-notes/aspnetcore-1.1.md @@ -29,4 +29,4 @@ ASP.NET Core 1.1 has more features than ASP.NET Core 1.0. In general, we recomme ## Additional Information * [ASP.NET Core 1.1.0 Release Notes](https://github.com/dotnet/aspnetcore/releases/tag/1.1.0) -* To connect with the ASP.NET Core development team's progress and plans, tune in to [.NET Live TV](https://dotnet.microsoft.com/live). +* To connect with the ASP.NET Core development team's progress and plans, tune in to [.NET Live TV](https://live.dot.net). diff --git a/aspnetcore/release-notes/aspnetcore-2.0.md b/aspnetcore/release-notes/aspnetcore-2.0.md index 40125386d512..bc154f02c1bb 100644 --- a/aspnetcore/release-notes/aspnetcore-2.0.md +++ b/aspnetcore/release-notes/aspnetcore-2.0.md @@ -153,4 +153,4 @@ For guidance on how to migrate ASP.NET Core 1.x applications to ASP.NET Core 2.0 For the complete list of changes, see the [ASP.NET Core 2.0 Release Notes](https://github.com/dotnet/aspnetcore/releases/tag/2.0.0). -To connect with the ASP.NET Core development team's progress and plans, tune in to [.NET Live TV](https://dotnet.microsoft.com/live). +To connect with the ASP.NET Core development team's progress and plans, tune in to [.NET Live TV](https://live.dot.net). From 5fb20a5724ecf0c5349630bf7ae05467c366e891 Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Fri, 25 Jul 2025 06:42:12 -0400 Subject: [PATCH 05/18] Updates --- .../fundamentals/choose-aspnet-framework.md | 2 +- aspnetcore/fundamentals/index.md | 108 +++++----- .../fundamentals/index/includes/index3-7.md | 52 +++++ .../fundamentals/index/includes/index8.md | 54 ++++- aspnetcore/includes/benefits.md | 86 -------- aspnetcore/includes/key-features.md | 53 +++++ aspnetcore/introduction-to-aspnet-core.md | 191 ++++-------------- 7 files changed, 253 insertions(+), 293 deletions(-) delete mode 100644 aspnetcore/includes/benefits.md create mode 100644 aspnetcore/includes/key-features.md diff --git a/aspnetcore/fundamentals/choose-aspnet-framework.md b/aspnetcore/fundamentals/choose-aspnet-framework.md index 8c18b0ea78c2..65ff7f659cfc 100644 --- a/aspnetcore/fundamentals/choose-aspnet-framework.md +++ b/aspnetcore/fundamentals/choose-aspnet-framework.md @@ -15,7 +15,7 @@ ASP.NET Core is a redesign of ASP.NET 4.x. This article lists the differences be ASP.NET Core is an open-source, cross-platform framework for building modern, cloud-based web apps on Windows, macOS, or Linux. -[!INCLUDE[](~/includes/benefits.md)] +[!INCLUDE[](~/includes/key-features.md)] ## ASP.NET 4.x diff --git a/aspnetcore/fundamentals/index.md b/aspnetcore/fundamentals/index.md index 41d545edd4fc..f999fe07f41e 100644 --- a/aspnetcore/fundamentals/index.md +++ b/aspnetcore/fundamentals/index.md @@ -18,59 +18,7 @@ This article provides an overview of the fundamentals for building ASP.NET Core For Blazor fundamentals guidance, which adds to or supersedes the guidance in this article, see . -## How to download a sample - -Many of the articles and tutorials include links to sample code. - -1. [Download the ASP.NET repository zip file](https://codeload.github.com/dotnet/AspNetCore.Docs/zip/main). -1. Unzip the `AspNetCore.Docs-main.zip` file. -1. To access an article's sample app in the unzipped repository, use the URL in the article's sample link to help you navigate to the sample's folder. Usually, an article's sample link appears at the top of the article with the link text *View or download sample code*. - -### Preprocessor directives in sample code - -To demonstrate multiple scenarios, sample apps use the `#define` and `#if-#else/#elif-#endif` preprocessor directives to selectively compile and run different sections of sample code. For those samples that make use of this approach, set the `#define` directive at the top of the C# files to define the symbol associated with the scenario that you want to run. Some samples require defining the symbol at the top of multiple files in order to run a scenario. - -For example, the following `#define` symbol list indicates that four scenarios are available (one scenario per symbol). The current sample configuration runs the `TemplateCode` scenario: - -```csharp -#define TemplateCode // or LogFromMain or ExpandDefault or FilterInCode -``` - -To change the sample to run the `ExpandDefault` scenario, define the `ExpandDefault` symbol and leave the remaining symbols commented-out: - -```csharp -#define ExpandDefault // TemplateCode or LogFromMain or FilterInCode -``` - -For more information on using [C# preprocessor directives](/dotnet/csharp/language-reference/preprocessor-directives/) to selectively compile sections of code, see [#define (C# Reference)](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-define) and [#if (C# Reference)](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-if). - -### Regions in sample code - -Some sample apps contain sections of code surrounded by [#region](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-region) and [#endregion](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-endregion) C# directives. The documentation build system injects these regions into the rendered documentation topics. - -Region names usually contain the word "snippet." The following example shows a region named `snippet_WebHostDefaults`: - -```csharp -#region snippet_WebHostDefaults -Host.CreateDefaultBuilder(args) - .ConfigureWebHostDefaults(webBuilder => - { - webBuilder.UseStartup(); - }); -#endregion -``` - -The preceding C# code snippet is referenced in the topic's markdown file with the following line: - -```md -[!code-csharp[](sample/SampleApp/Program.cs?name=snippet_WebHostDefaults)] -``` - -You may safely ignore or remove the `#region` and `#endregion` directives that surround the code. Don't alter the code within these directives if you plan to run the sample scenarios described in the topic. - -For more information, see [Contribute to the ASP.NET documentation: Code snippets](https://github.com/dotnet/AspNetCore.Docs/blob/main/CONTRIBUTING.md#code-snippets). - -## Program.cs +## `Program.cs` ASP.NET Core apps created with the web templates contain the application startup code in the `Program.cs` file. The `Program.cs` file is where: @@ -288,9 +236,61 @@ In Razor `.cshtml` files, `~/` points to the web root. A path beginning with `~/ For more information, see . +## How to download a sample + +Many of the articles and tutorials include links to sample code. + +1. [Download the ASP.NET repository zip file](https://codeload.github.com/dotnet/AspNetCore.Docs/zip/main). +1. Unzip the `AspNetCore.Docs-main.zip` file. +1. To access an article's sample app in the unzipped repository, use the URL in the article's sample link to help you navigate to the sample's folder. Usually, an article's sample link appears at the top of the article with the link text *View or download sample code*. + +### Preprocessor directives in sample code + +To demonstrate multiple scenarios, sample apps use the `#define` and `#if-#else/#elif-#endif` preprocessor directives to selectively compile and run different sections of sample code. For those samples that make use of this approach, set the `#define` directive at the top of the C# files to define the symbol associated with the scenario that you want to run. Some samples require defining the symbol at the top of multiple files in order to run a scenario. + +For example, the following `#define` symbol list indicates that four scenarios are available (one scenario per symbol). The current sample configuration runs the `TemplateCode` scenario: + +```csharp +#define TemplateCode // or LogFromMain or ExpandDefault or FilterInCode +``` + +To change the sample to run the `ExpandDefault` scenario, define the `ExpandDefault` symbol and leave the remaining symbols commented-out: + +```csharp +#define ExpandDefault // TemplateCode or LogFromMain or FilterInCode +``` + +For more information on using [C# preprocessor directives](/dotnet/csharp/language-reference/preprocessor-directives/) to selectively compile sections of code, see [#define (C# Reference)](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-define) and [#if (C# Reference)](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-if). + +### Regions in sample code + +Some sample apps contain sections of code surrounded by [#region](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-region) and [#endregion](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-endregion) C# directives. The documentation build system injects these regions into the rendered documentation topics. + +Region names usually contain the word "snippet." The following example shows a region named `snippet_WebHostDefaults`: + +```csharp +#region snippet_WebHostDefaults +Host.CreateDefaultBuilder(args) + .ConfigureWebHostDefaults(webBuilder => + { + webBuilder.UseStartup(); + }); +#endregion +``` + +The preceding C# code snippet is referenced in the topic's markdown file with the following line: + +```md +[!code-csharp[](sample/SampleApp/Program.cs?name=snippet_WebHostDefaults)] +``` + +You may safely ignore or remove the `#region` and `#endregion` directives that surround the code. Don't alter the code within these directives if you plan to run the sample scenarios described in the topic. + +For more information, see [Contribute to the ASP.NET documentation: Code snippets](https://github.com/dotnet/AspNetCore.Docs/blob/main/CONTRIBUTING.md#code-snippets). + ## Additional resources -* + :::moniker-end diff --git a/aspnetcore/fundamentals/index/includes/index3-7.md b/aspnetcore/fundamentals/index/includes/index3-7.md index a2dfe312ad90..79f028476600 100644 --- a/aspnetcore/fundamentals/index/includes/index3-7.md +++ b/aspnetcore/fundamentals/index/includes/index3-7.md @@ -428,4 +428,56 @@ In Razor `.cshtml` files, tilde-slash (`~/`) points to the web root. A path begi For more information, see . +## How to download a sample + +Many of the articles and tutorials include links to sample code. + +1. [Download the ASP.NET repository zip file](https://codeload.github.com/dotnet/AspNetCore.Docs/zip/main). +1. Unzip the `AspNetCore.Docs-main.zip` file. +1. To access an article's sample app in the unzipped repository, use the URL in the article's sample link to help you navigate to the sample's folder. Usually, an article's sample link appears at the top of the article with the link text *View or download sample code*. + +### Preprocessor directives in sample code + +To demonstrate multiple scenarios, sample apps use the `#define` and `#if-#else/#elif-#endif` preprocessor directives to selectively compile and run different sections of sample code. For those samples that make use of this approach, set the `#define` directive at the top of the C# files to define the symbol associated with the scenario that you want to run. Some samples require defining the symbol at the top of multiple files in order to run a scenario. + +For example, the following `#define` symbol list indicates that four scenarios are available (one scenario per symbol). The current sample configuration runs the `TemplateCode` scenario: + +```csharp +#define TemplateCode // or LogFromMain or ExpandDefault or FilterInCode +``` + +To change the sample to run the `ExpandDefault` scenario, define the `ExpandDefault` symbol and leave the remaining symbols commented-out: + +```csharp +#define ExpandDefault // TemplateCode or LogFromMain or FilterInCode +``` + +For more information on using [C# preprocessor directives](/dotnet/csharp/language-reference/preprocessor-directives/) to selectively compile sections of code, see [#define (C# Reference)](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-define) and [#if (C# Reference)](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-if). + +### Regions in sample code + +Some sample apps contain sections of code surrounded by [#region](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-region) and [#endregion](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-endregion) C# directives. The documentation build system injects these regions into the rendered documentation topics. + +Region names usually contain the word "snippet." The following example shows a region named `snippet_WebHostDefaults`: + +```csharp +#region snippet_WebHostDefaults +Host.CreateDefaultBuilder(args) + .ConfigureWebHostDefaults(webBuilder => + { + webBuilder.UseStartup(); + }); +#endregion +``` + +The preceding C# code snippet is referenced in the topic's markdown file with the following line: + +```md +[!code-csharp[](sample/SampleApp/Program.cs?name=snippet_WebHostDefaults)] +``` + +You may safely ignore or remove the `#region` and `#endregion` directives that surround the code. Don't alter the code within these directives if you plan to run the sample scenarios described in the topic. + +For more information, see [Contribute to the ASP.NET documentation: Code snippets](https://github.com/dotnet/AspNetCore.Docs/blob/main/CONTRIBUTING.md#code-snippets). + :::moniker-end diff --git a/aspnetcore/fundamentals/index/includes/index8.md b/aspnetcore/fundamentals/index/includes/index8.md index 30a71cf07228..47b9b9d5bada 100644 --- a/aspnetcore/fundamentals/index/includes/index8.md +++ b/aspnetcore/fundamentals/index/includes/index8.md @@ -211,8 +211,60 @@ In Razor `.cshtml` files, `~/` points to the web root. A path beginning with `~/ For more information, see . +## How to download a sample + +Many of the articles and tutorials include links to sample code. + +1. [Download the ASP.NET repository zip file](https://codeload.github.com/dotnet/AspNetCore.Docs/zip/main). +1. Unzip the `AspNetCore.Docs-main.zip` file. +1. To access an article's sample app in the unzipped repository, use the URL in the article's sample link to help you navigate to the sample's folder. Usually, an article's sample link appears at the top of the article with the link text *View or download sample code*. + +### Preprocessor directives in sample code + +To demonstrate multiple scenarios, sample apps use the `#define` and `#if-#else/#elif-#endif` preprocessor directives to selectively compile and run different sections of sample code. For those samples that make use of this approach, set the `#define` directive at the top of the C# files to define the symbol associated with the scenario that you want to run. Some samples require defining the symbol at the top of multiple files in order to run a scenario. + +For example, the following `#define` symbol list indicates that four scenarios are available (one scenario per symbol). The current sample configuration runs the `TemplateCode` scenario: + +```csharp +#define TemplateCode // or LogFromMain or ExpandDefault or FilterInCode +``` + +To change the sample to run the `ExpandDefault` scenario, define the `ExpandDefault` symbol and leave the remaining symbols commented-out: + +```csharp +#define ExpandDefault // TemplateCode or LogFromMain or FilterInCode +``` + +For more information on using [C# preprocessor directives](/dotnet/csharp/language-reference/preprocessor-directives/) to selectively compile sections of code, see [#define (C# Reference)](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-define) and [#if (C# Reference)](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-if). + +### Regions in sample code + +Some sample apps contain sections of code surrounded by [#region](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-region) and [#endregion](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-endregion) C# directives. The documentation build system injects these regions into the rendered documentation topics. + +Region names usually contain the word "snippet." The following example shows a region named `snippet_WebHostDefaults`: + +```csharp +#region snippet_WebHostDefaults +Host.CreateDefaultBuilder(args) + .ConfigureWebHostDefaults(webBuilder => + { + webBuilder.UseStartup(); + }); +#endregion +``` + +The preceding C# code snippet is referenced in the topic's markdown file with the following line: + +```md +[!code-csharp[](sample/SampleApp/Program.cs?name=snippet_WebHostDefaults)] +``` + +You may safely ignore or remove the `#region` and `#endregion` directives that surround the code. Don't alter the code within these directives if you plan to run the sample scenarios described in the topic. + +For more information, see [Contribute to the ASP.NET documentation: Code snippets](https://github.com/dotnet/AspNetCore.Docs/blob/main/CONTRIBUTING.md#code-snippets). + ## Additional resources -* [WebApplicationBuilder source code](https://github.com/dotnet/aspnetcore/blob/v6.0.1/src/DefaultBuilder/src/WebApplicationBuilder.cs) +[WebApplicationBuilder source code](https://github.com/dotnet/aspnetcore/blob/v6.0.1/src/DefaultBuilder/src/WebApplicationBuilder.cs) :::moniker-end diff --git a/aspnetcore/includes/benefits.md b/aspnetcore/includes/benefits.md deleted file mode 100644 index 1d63d1c80ba0..000000000000 --- a/aspnetcore/includes/benefits.md +++ /dev/null @@ -1,86 +0,0 @@ -ASP.NET Core provides the following benefits: - -:::moniker range=">= aspnetcore-6.0" - - - -* A unified story for building web apps, web APIs, IoT (Internet of Things) apps, and mobile backends. -* Architected for testability. -* Create rich interactive web UI with [Blazor](xref:blazor/index) using [C#](/dotnet/csharp/)—no JavaScript required. Reuse your Blazor components to build native mobile and desktop apps with [Blazor Hybrid](xref:blazor/hybrid/index). -* [Minimal APIs](xref:fundamentals/minimal-apis) are a simplified approach for building fast web APIs with minimal code and configuration by fluently declaring API routes and endpoints. -* Ability to develop and run on Windows, macOS, and Linux. -* Open-source and [community-focused](https://dotnet.microsoft.com/platform/community). -* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). -* Add real-time web functionality to apps using [SignalR](xref:signalr/index). -* Support for hosting Remote Procedure Call (RPC) services using [gRPC](xref:grpc/introduction). -* Built-in security features for [authentication](xref:security/authentication/index) and [authorization](xref:security/authorization/introduction). -* A cloud-ready, environment-based [configuration system](xref:fundamentals/configuration/index). -* Built-in [dependency injection](xref:fundamentals/dependency-injection). -* A lightweight, [high-performance](https://github.com/aspnet/benchmarks), and modular HTTP request pipeline. -* Ability to host in the cloud or on-premises with the following: - * [Kestrel](xref:fundamentals/servers/kestrel) - * [Azure App Service](https://azure.microsoft.com/products/app-service) - * [IIS](xref:host-and-deploy/iis/index) - * [HTTP.sys](xref:fundamentals/servers/httpsys) - * [Nginx](xref:host-and-deploy/linux-nginx) - * [Docker](xref:host-and-deploy/docker/index) -* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#choose-net). -* Tooling that simplifies modern web development. - -:::moniker-end - -:::moniker range=">= aspnetcore-3.0 < aspnetcore-6.0" - - - -* A unified story for building web apps, web APIs, Azure IoT (Internet of Things) apps, and mobile backends. -* Architected for testability. -* [Blazor](xref:blazor/index) lets you create rich interactive client-side UIs using [.NET](/dotnet/standard/tour)/[C#](/dotnet/csharp/) with wide browser support based on HTML/JavaScript, including mobile browsers. You can also build hybrid desktop and mobile apps with .NET and Blazor. -* Supports [Razor Pages](xref:razor-pages/index) and [Model-View-Controller (MVC)](xref:mvc/overview) app development. -* Ability to develop and run on Windows, macOS, and Linux. -* Open-source and [community-focused](https://live.asp.net/). -* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). -* Support for hosting Remote Procedure Call (RPC) services using [gRPC](xref:grpc/index). -* A cloud-ready, environment-based [configuration system](xref:fundamentals/configuration/index). -* Built-in [dependency injection](xref:fundamentals/dependency-injection). -* A lightweight, [high-performance](https://github.com/aspnet/benchmarks), and modular HTTP request pipeline. -* Ability to host in the cloud or on-premises with the following: - * [Kestrel](xref:fundamentals/servers/kestrel) - * [Azure App Service](https://azure.microsoft.com/products/app-service) - * [IIS](xref:host-and-deploy/iis/index) - * [HTTP.sys](xref:fundamentals/servers/httpsys) - * [Nginx](xref:host-and-deploy/linux-nginx) - * [Docker](xref:host-and-deploy/docker/index) -* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#choose-net). -* Tooling that simplifies modern web development. - -:::moniker-end - -:::moniker range="< aspnetcore-3.0" - - - -* A unified story for building web apps, web APIs, Azure IoT (Internet of Things) apps, and mobile backends. -* Architected for testability. -* Develop apps and APIs using [Razor Pages](xref:razor-pages/index) and [Model-View-Controller (MVC)](xref:mvc/overview) frameworks. -* Ability to develop and run on Windows, macOS, and Linux. -* Open-source and [community-focused](https://live.asp.net/). -* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). -* Support for hosting Remote Procedure Call (RPC) services using [gRPC](xref:grpc/index). -* A cloud-ready, environment-based [configuration system](xref:fundamentals/configuration/index). -* Built-in [dependency injection](xref:fundamentals/dependency-injection). -* A lightweight, [high-performance](https://github.com/aspnet/benchmarks), and modular HTTP request pipeline. -* Ability to host in the cloud or on-premises with the following: - * [Kestrel](xref:fundamentals/servers/kestrel) - * [Azure App Service](https://azure.microsoft.com/products/app-service) - * [IIS](xref:host-and-deploy/iis/index) - * [HTTP.sys](xref:fundamentals/servers/httpsys) - * [Nginx](xref:host-and-deploy/linux-nginx) - * [Docker](xref:host-and-deploy/docker/index) -* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#choose-net). -* Tooling that simplifies modern web development. - -:::moniker-end diff --git a/aspnetcore/includes/key-features.md b/aspnetcore/includes/key-features.md new file mode 100644 index 000000000000..5df72255e4ca --- /dev/null +++ b/aspnetcore/includes/key-features.md @@ -0,0 +1,53 @@ +Key features: + +:::moniker range=">= aspnetcore-6.0" + +* Lightweight and modular HTTP request pipeline. +* [Kestrel](xref:fundamentals/servers/kestrel): A [high-performance](https://github.com/aspnet/benchmarks) and cross-platform HTTP server. +* Integrated [dependency injection](xref:fundamentals/dependency-injection). +* [Environment-based configuration](xref:fundamentals/configuration/index). +* Rich logging, tracing, and runtime metrics. +* [Blazor](xref:blazor/index): Create rich interactive web UI components using [C#](/dotnet/csharp/)—no JavaScript required. +* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). +* [Minimal APIs](xref:fundamentals/minimal-apis): Build fast web APIs with minimal code and configuration by fluently declaring API routes and endpoints. +* [SignalR](xref:signalr/index): Add real-time web functionality. +* [gRPC](xref:grpc/index): High performance Remote Procedure Call (RPC) services. +* Security: Built-in security features for [authentication](xref:security/authentication/index), [authorization](xref:security/authorization/introduction), and [data protection](xref:security/data-protection/introduction). +* Testing: Easily create unit and integration tests. +* Tooling: Maximize your development productivity with [Visual Studio](https://visualstudio.microsoft.com/) and [Visual Studio Code](https://code.visualstudio.com/). + +:::moniker-end + +:::moniker range=">= aspnetcore-3.0 < aspnetcore-6.0" + +* Lightweight and modular HTTP request pipeline. +* [Kestrel](xref:fundamentals/servers/kestrel): A [high-performance](https://github.com/aspnet/benchmarks) and cross-platform HTTP server. +* Integrated [dependency injection](xref:fundamentals/dependency-injection). +* [Environment-based configuration](xref:fundamentals/configuration/index). +* Rich logging, tracing, and runtime metrics. +* [Blazor](xref:blazor/index): Create rich interactive web UI components using [C#](/dotnet/csharp/)—no JavaScript required. +* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). +* [SignalR](xref:signalr/index): Add real-time web functionality. +* [gRPC](xref:grpc/introduction): High performance Remote Procedure Call (RPC) services. +* Security: Built-in security features for [authentication](xref:security/authentication/index), [authorization](xref:security/authorization/introduction), and [data protection](xref:security/data-protection/introduction). +* Testing: Easily create unit and integration tests. +* Tooling: Maximize your development productivity with [Visual Studio](https://visualstudio.microsoft.com/) and [Visual Studio Code](https://code.visualstudio.com/). + +:::moniker-end + +:::moniker range="< aspnetcore-3.0" + +* Lightweight and modular HTTP request pipeline. +* [Kestrel](xref:fundamentals/servers/kestrel): A [high-performance](https://github.com/aspnet/benchmarks) and cross-platform HTTP server. +* Integrated [dependency injection](xref:fundamentals/dependency-injection). +* [Environment-based configuration](xref:fundamentals/configuration/index). +* Rich logging, tracing, and runtime metrics. +* Develop apps and APIs using [Razor Pages](xref:razor-pages/index) and [Model-View-Controller (MVC)](xref:mvc/overview) frameworks. +* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). +* [SignalR](xref:signalr/index): Add real-time web functionality. +* [gRPC](xref:grpc/introduction): High performance Remote Procedure Call (RPC) services. +* Security: Built-in security features for [authentication](xref:security/authentication/index), [authorization](xref:security/authorization/introduction), and [data protection](xref:security/data-protection/introduction). +* Testing: Easily create unit and integration tests. +* Tooling: Maximize your development productivity with [Visual Studio](https://visualstudio.microsoft.com/) and [Visual Studio Code](https://code.visualstudio.com/). + +:::moniker-end diff --git a/aspnetcore/introduction-to-aspnet-core.md b/aspnetcore/introduction-to-aspnet-core.md index ef2c45ba1db4..cdba6e32c269 100644 --- a/aspnetcore/introduction-to-aspnet-core.md +++ b/aspnetcore/introduction-to-aspnet-core.md @@ -4,7 +4,7 @@ author: tdykstra description: Get an overview of ASP.NET Core, a cross-platform, high-performance, open-source framework for building modern, cloud-enabled, Internet-connected apps. ms.author: tdykstra ms.custom: mvc -ms.date: 07/23/2025 +ms.date: 07/25/2025 uid: index --- # Overview of ASP.NET Core @@ -13,67 +13,66 @@ uid: index ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern web apps. The framework is built for large-scale app development and can handle any size workload, making it a robust choice for enterprise-level apps. -[!INCLUDE[](~/includes/benefits.md)] +[!INCLUDE[](~/includes/key-features.md)] -## Build web apps and web APIs +## Why choose ASP.NET Core? (OPTION 1: COLLAPSED BULLET LIST) -Use ASP.NET Core to build web apps with: +* **Unified framework**: ASP.NET Core is a complete and fully integrated web framework with built-in production-ready components to handle all of your web development needs. +* **Full stack productivity**: Build more apps faster by enabling your team to work full stack, from the frontend to the backend, using a single development framework. +* **Secure by design**: ASP.NET Core is built with security as a top concern and includes built-in support for authentication, authorization, and data protection. +* **Cloud-ready**: Whether you're deploying to your own data centers or to the cloud, ASP.NET Core simplifies deployment, monitoring, and configuration. +* **Performance & scalability**: Handle the most demanding workloads with ASP.NET Core's industry leading performance. +* **Trusted and mature**: ASP.NET Core is used and proven at hyperscale by some of the largest services in the world, including Bing, Xbox, Microsoft 365, and Azure. -:::moniker range=">= aspnetcore-6.0" +## Why choose ASP.NET Core? (OPTION 2: SPACED BULLET LIST) -* [Blazor](xref:blazor/index), a component-based web UI framework based on C# that supports both server-side rendering and client-side rendering via WebAssembly. -* [Minimal APIs](xref:fundamentals/minimal-apis), a simplified approach for building fast web APIs with minimal code and configuration by fluently declaring API routes and actions. +* **Unified framework**: ASP.NET Core is a complete and fully integrated web framework with built-in production-ready components to handle all of your web development needs. -:::moniker-end +* **Full stack productivity**: Build more apps faster by enabling your team to work full stack, from the frontend to the backend, using a single development framework. -:::moniker range=">= aspnetcore-3.0 < aspnetcore-6.0" +* **Secure by design**: ASP.NET Core is built with security as a top concern and includes built-in support for authentication, authorization, and data protection. -* [Blazor](xref:blazor/index), a component-based web UI framework based on C# that supports both server-side rendering via the .NET runtime and client-side rendering via WebAssembly. -* [Razor Pages](xref:razor-pages/index), a page-based programming model that makes building web UI easier and more productive. -* [Model-View-Controller (MVC)](xref:mvc/overview), a traditional framework for building web apps and web APIs using the [Model-View-Controller design pattern](https://developer.mozilla.org/docs/Glossary/MVC). +* **Cloud-ready**: Whether you're deploying to your own data centers or to the cloud, ASP.NET Core simplifies deployment, monitoring, and configuration. -:::moniker-end +* **Performance & scalability**: Handle the most demanding workloads with ASP.NET Core's industry leading performance. -:::moniker range="< aspnetcore-3.0" +* **Trusted and mature**: ASP.NET Core is used and proven at hyperscale by some of the largest services in the world, including Bing, Xbox, Microsoft 365, and Azure. -* [Razor Pages](xref:razor-pages/index), a page-based programming model that makes building web UI easier and more productive. -* [Model-View-Controller (MVC)](xref:mvc/overview), a traditional framework for building web apps and web APIs using the [Model-View-Controller design pattern](https://developer.mozilla.org/docs/Glossary/MVC). +## Why choose ASP.NET Core? (OPTION 3: UNBULLETED LIST WITH ADDL SPACING) -:::moniker-end +**Unified framework** -## ASP.NET Core target frameworks +ASP.NET Core is a complete and fully integrated web framework with built-in production-ready components to handle all of your web development needs. -ASP.NET Core 3.x or later can only target .NET. +**Full stack productivity** -There are several advantages to targeting .NET, and these advantages increase with each release. Some advantages of .NET over .NET Framework include: +Build more apps faster by enabling your team to work full stack, from the frontend to the backend, using a single development framework. -* Cross-platform on Windows, macOS, and Linux -* Improved performance -* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#choose-net) -* New APIs -* Open source +**Secure by design** -ASP.NET Core 2.x can target .NET Core or .NET Framework. ASP.NET Core apps targeting .NET Framework aren't cross-platform and only run on Windows. Generally, ASP.NET Core 2.x is made up of [.NET Standard](/dotnet/standard/net-standard) libraries. Libraries written with .NET Standard 2.0 run on any [.NET platform that implements .NET Standard 2.0](/dotnet/standard/net-standard?tabs=net-standard-2-0#net-standard-versions). +ASP.NET Core is built with security as a top concern and includes built-in support for authentication, authorization, and data protection. -ASP.NET Core 2.x is supported on .NET Framework versions that implement .NET Standard 2.0: +**Cloud-ready** -* .NET Framework latest version is recommended. -* .NET Framework 4.6.1 or later. +Whether you're deploying to your own data centers or to the cloud, ASP.NET Core simplifies deployment, monitoring, and configuration. -To help close the API gap from .NET Framework to .NET Core 2.x, the [Windows Compatibility Pack](/dotnet/core/porting/windows-compat-pack) made thousands of Windows-only APIs available. These APIs weren't available in .NET Core 1.x. +**Performance & scalability** -## Tutorials to get started +Handle the most demanding workloads with ASP.NET Core's industry leading performance. - +**Trusted and mature** -We recommend the following sequence of tutorials for an introduction to developing ASP.NET Core apps, or select the appropriate tutorial for a particular type of app that you want to build. +ASP.NET Core is used and proven at hyperscale by some of the largest services in the world, including Bing, Xbox, Microsoft 365, and Azure. + +## Tutorials to get started Our tutorial for new developers and developers new to .NET is . -:::moniker range=">= aspnetcore-6.0" +Once you've completed the *Get started* tutorial, we recommend reading the [ASP.NET Core fundamentals](xref:fundamentals/index) article, which covers the basics of ASP.NET Core. - +Next, experience ASP.NET Core in action with our other tutorials. You can use each tutorial in the order shown, or you can select a specific tutorial if you know in advance the type of app that you plan to build. + +:::moniker range=">= aspnetcore-6.0" App type | Scenario | Tutorial -------- | -------- | -------- @@ -89,8 +88,6 @@ Real-time app | Server/client bidirectional communication | -Web app | New server-side web development with MVC | Web API | Server-based data processing | and [Create a web API with ASP.NET Core controllers (.NET SDK)](/training/modules/build-web-api-aspnet-core/) Remote Procedure Call (RPC) app | Contract-first services using Protocol Buffers | Real-time app | Server/client bidirectional communication | @@ -108,18 +105,16 @@ Real-time app | Server/client bidirectional communication | +To learn about data access concepts, see . :::moniker-end :::moniker range="< aspnetcore-3.0" +The tutorials in the following table teach data access concepts. + Scenario | Tutorial -------- | -------- New development with Razor Pages | @@ -127,116 +122,10 @@ New development with MVC | :::moniker-end -See the [ASP.NET Core fundamentals articles](xref:fundamentals/index), which apply to all app types. - -Browse the table of contents for other topics of interest. - -## Recommended learning path (SUBHEADING LAYOUT OPTION) - - - -We recommend the following sequence of tutorials for an introduction to developing ASP.NET Core apps, or select the appropriate tutorial for a particular type of app that you want to build. - -Our tutorial for new developers and developers moving to .NET from other app development frameworks is . - -:::moniker range=">= aspnetcore-6.0" - -### Web apps - -* Interactive Online Learn Module: [Build your first web app with ASP.NET Core using Blazor](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro) -* Using [Visual Studio](https://visualstudio.microsoft.com/) or [Visual Studio Code](https://code.visualstudio.com/): [Build your first web app with Blazor](/training/modules/build-your-first-blazor-web-app/) - -### Web API apps - -* Using Visual Studio or Visual Studio Code: -* Using the .NET SDK: [Build a web API with minimal API, ASP.NET Core, and .NET](/training/modules/build-web-api-minimal-api/) - -### Remote Procedure Call (RPC) apps - - - -### Real-time, server/client bidirectional communication apps - - - -### Additional scenarios - -* -* - -:::moniker-end - -:::moniker range=">= aspnetcore-3.0 < aspnetcore-6.0" - -### Web apps - -* Interactive Online Learn Module: [Build your first web app with ASP.NET Core using Blazor](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro) -* Using Visual Studio or Visual Studio Code: [Build your first web app with Blazor](/training/modules/build-your-first-blazor-web-app/) - -### Web API apps - -* Using Visual Studio or Visual Studio Code: -* Using the .NET SDK: [Create a web API with ASP.NET Core controllers](/training/modules/build-web-api-aspnet-core/) - -### Remote Procedure Call (RPC) apps - - - -### Real-time, server/client bidirectional communication apps - - - -### Additional scenarios - -* -* - -:::moniker-end - -:::moniker range="< aspnetcore-3.0" - -### Web apps - -* -* - -### Web API apps - -* Using Visual Studio or Visual Studio Code: -* Using the .NET SDK: [Create a web API with ASP.NET Core controllers](/training/modules/build-web-api-aspnet-core/) - -### Real-time, server/client bidirectional communication apps - - - -:::moniker-end - -### Data access concepts - -:::moniker range=">= aspnetcore-3.0" - -* -* -* - -:::moniker-end - -:::moniker range="< aspnetcore-3.0" - -* -* - -:::moniker-end - -See the [ASP.NET Core fundamentals articles](xref:fundamentals/index), which apply to all app types. - -Browse the table of contents for other topics of interest. - - ## Additional resources * [Download .NET](https://dotnet.microsoft.com/download) * [Visual Studio](https://visualstudio.microsoft.com/) * [Visual Studio Code](https://code.visualstudio.com/) -* [.NET Live TV](https://dotnet.microsoft.com/live) +* [.NET Developer Community](https://dotnet.microsoft.com/platform/community) +* [.NET Live TV](https://live.dot.net) From 6ccb645bfbe74e4d781a8278dbdf06fae5686f1a Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Fri, 25 Jul 2025 06:48:49 -0400 Subject: [PATCH 06/18] Updates --- aspnetcore/fundamentals/choose-aspnet-framework.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/aspnetcore/fundamentals/choose-aspnet-framework.md b/aspnetcore/fundamentals/choose-aspnet-framework.md index 65ff7f659cfc..60db9e466f10 100644 --- a/aspnetcore/fundamentals/choose-aspnet-framework.md +++ b/aspnetcore/fundamentals/choose-aspnet-framework.md @@ -34,8 +34,6 @@ The following table compares ASP.NET Core to ASP.NET 4.x. |Higher performance than ASP.NET 4.x|Good performance| |[Use .NET Core runtime](/dotnet/standard/choosing-core-framework-server)|Use .NET Framework runtime| -See [ASP.NET Core targeting .NET Framework](xref:index#aspnet-core-target-frameworks) for information on ASP.NET Core 2.x support on .NET Framework. - ## ASP.NET Core scenarios * [Websites](xref:tutorials/first-mvc-app/start-mvc) From 537df75b50f83b8591c845ffa60f4a150752d591 Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Fri, 25 Jul 2025 06:53:16 -0400 Subject: [PATCH 07/18] Updates --- aspnetcore/includes/key-features.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/aspnetcore/includes/key-features.md b/aspnetcore/includes/key-features.md index 5df72255e4ca..c1a600c3f8e6 100644 --- a/aspnetcore/includes/key-features.md +++ b/aspnetcore/includes/key-features.md @@ -28,7 +28,7 @@ Key features: * [Blazor](xref:blazor/index): Create rich interactive web UI components using [C#](/dotnet/csharp/)—no JavaScript required. * Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). * [SignalR](xref:signalr/index): Add real-time web functionality. -* [gRPC](xref:grpc/introduction): High performance Remote Procedure Call (RPC) services. +* [gRPC](xref:grpc/index): High performance Remote Procedure Call (RPC) services. * Security: Built-in security features for [authentication](xref:security/authentication/index), [authorization](xref:security/authorization/introduction), and [data protection](xref:security/data-protection/introduction). * Testing: Easily create unit and integration tests. * Tooling: Maximize your development productivity with [Visual Studio](https://visualstudio.microsoft.com/) and [Visual Studio Code](https://code.visualstudio.com/). @@ -45,7 +45,7 @@ Key features: * Develop apps and APIs using [Razor Pages](xref:razor-pages/index) and [Model-View-Controller (MVC)](xref:mvc/overview) frameworks. * Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). * [SignalR](xref:signalr/index): Add real-time web functionality. -* [gRPC](xref:grpc/introduction): High performance Remote Procedure Call (RPC) services. +* [gRPC](xref:grpc/index): High performance Remote Procedure Call (RPC) services. * Security: Built-in security features for [authentication](xref:security/authentication/index), [authorization](xref:security/authorization/introduction), and [data protection](xref:security/data-protection/introduction). * Testing: Easily create unit and integration tests. * Tooling: Maximize your development productivity with [Visual Studio](https://visualstudio.microsoft.com/) and [Visual Studio Code](https://code.visualstudio.com/). From 879a03201958c8aea52cdfa611a1272865b09707 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Fri, 25 Jul 2025 13:43:26 -0700 Subject: [PATCH 08/18] Replace .NET Core with .NET naming throughout documentation (#35800) --- .github/ISSUE_TEMPLATE/doc-issue.md | 2 +- aspnetcore/blazor/call-web-api.md | 2 +- .../webassembly/github-pages.md | 2 +- aspnetcore/blazor/hosting-models.md | 6 +- .../security/includes/troubleshoot-server.md | 2 +- .../security/includes/troubleshoot-wasm.md | 2 +- aspnetcore/blazor/security/index.md | 4 +- .../webassembly/additional-scenarios.md | 2 +- .../hosted-with-identity-server.md | 2 +- .../standalone-with-authentication-library.md | 2 +- .../standalone-with-identity/index.md | 2 +- aspnetcore/blazor/tooling.md | 6 +- .../tutorials/movie-database-app/part-2.md | 2 +- aspnetcore/client-side/libman/libman-cli.md | 2 +- aspnetcore/data/ef-rp/sort-filter-page.md | 4 +- aspnetcore/fundamentals/best-practices.md | 4 +- .../fundamentals/choose-aspnet-framework.md | 2 +- .../fundamentals/dotnet-scaffold-telemetry.md | 2 +- aspnetcore/fundamentals/file-providers.md | 4 +- aspnetcore/fundamentals/host/generic-host.md | 6 +- .../host/platform-specific-configuration.md | 4 +- aspnetcore/fundamentals/http-logging/index.md | 2 +- aspnetcore/fundamentals/index.md | 2 +- .../fundamentals/index/includes/index3-7.md | 4 +- .../fundamentals/index/includes/index8.md | 2 +- aspnetcore/fundamentals/logging/index.md | 14 ++-- .../openapi/aspnetcore-openapi.md | 2 +- .../openapi/includes/aspnetcore-openapi9.md | 2 +- .../fundamentals/openapi/openapi-tools.md | 2 +- aspnetcore/fundamentals/owin.md | 2 +- aspnetcore/fundamentals/servers/httpsys.md | 6 +- .../servers/httpsys/includes/httpsys5-7.md | 12 ++-- .../servers/httpsys/includes/httpsys8-9.md | 6 +- aspnetcore/fundamentals/servers/index.md | 2 +- .../servers/kestrel/diagnostics.md | 2 +- .../servers/kestrel/includes/kestrel6.md | 8 +-- .../servers/yarp/getting-started.md | 2 +- aspnetcore/fundamentals/target-aspnetcore.md | 4 +- .../tools/dotnet-aspnet-codegenerator.md | 2 +- aspnetcore/fundamentals/w3c-logger/index.md | 2 +- aspnetcore/grpc/client.md | 2 +- aspnetcore/grpc/diagnostics.md | 8 +-- aspnetcore/grpc/dotnet-grpc.md | 4 +- aspnetcore/grpc/security.md | 2 +- aspnetcore/grpc/supported-platforms.md | 2 +- aspnetcore/grpc/troubleshoot.md | 8 +-- .../troubleshoot/includes/troubleshoot3-7.md | 24 +++---- .../grpc/why-migrate-wcf-to-dotnet-grpc.md | 6 +- .../azure-iis-errors-reference.md | 18 ++--- .../host-and-deploy/directory-structure.md | 12 ++-- aspnetcore/host-and-deploy/docker/index.md | 2 +- .../docker/visual-studio-tools-for-docker.md | 10 ++- aspnetcore/host-and-deploy/iis/advanced.md | 4 +- .../host-and-deploy/iis/hosting-bundle.md | 20 +++--- .../host-and-deploy/iis/in-process-hosting.md | 4 +- aspnetcore/host-and-deploy/iis/index.md | 66 +++++++++---------- aspnetcore/host-and-deploy/linux-nginx.md | 6 +- .../visual-studio-publish-profiles.md | 17 ++--- aspnetcore/host-and-deploy/windows-service.md | 40 +++++------ .../unsupported-culture-log-level.md | 2 +- aspnetcore/log-mon/metrics/metrics.md | 2 +- aspnetcore/migration/31-to-50.md | 4 +- aspnetcore/migration/60-70.md | 4 +- aspnetcore/migration/70-80.md | 2 +- aspnetcore/migration/80-90.md | 2 +- aspnetcore/migration/fx-to-core/index.md | 4 +- aspnetcore/migration/fx-to-core/start.md | 1 - aspnetcore/performance/caching/distributed.md | 4 +- aspnetcore/performance/diagnostic-tools.md | 4 +- aspnetcore/performance/memory.md | 6 +- aspnetcore/razor-pages/sdk.md | 6 +- .../security/authentication/windowsauth.md | 8 +-- .../configuration/machine-wide-policy.md | 2 +- aspnetcore/security/enforcing-ssl.md | 4 +- .../enforcing-ssl/includes/enforcing-ssl8.md | 4 +- aspnetcore/security/ip-safelist.md | 2 +- aspnetcore/security/samesite.md | 20 +++--- aspnetcore/signalr/background-services.md | 4 +- aspnetcore/signalr/client-features.md | 4 +- aspnetcore/signalr/introduction.md | 2 +- .../signalr/publish-to-azure-web-app.md | 2 +- .../includes/integration-tests7.md | 2 +- .../includes/integration-tests8.md | 2 +- .../includes/integration-tests9.md | 2 +- aspnetcore/test/razor-pages-tests.md | 12 ++-- aspnetcore/test/troubleshoot-azure-iis.md | 18 ++--- .../includes/troubleshoot-azure-iis7.md | 18 ++--- aspnetcore/tutorials/dotnet-watch.md | 2 +- aspnetcore/tutorials/grpc/grpc-start.md | 6 +- .../grpc/grpc-start/includes/grpc-start5.md | 8 +-- .../grpc/grpc-start/includes/grpc-start6.md | 6 +- .../grpc/grpc-start/includes/grpc-start7.md | 6 +- .../grpc/grpc-start/includes/grpc-start8.md | 4 +- .../grpc/grpc-start/sample/sample6/readme.md | 2 +- .../grpc/grpc-start/sample/sample7/readme.md | 2 +- .../grpc/grpc-start/sample/sample8/readme.md | 2 +- .../grpc/grpc-start/sample/sample9/readme.md | 2 +- aspnetcore/tutorials/publish-to-iis.md | 16 ++--- aspnetcore/web-api/advanced/analyzers.md | 2 +- aspnetcore/web-api/http-repl/index.md | 6 +- aspnetcore/web-api/http-repl/telemetry.md | 2 +- 101 files changed, 300 insertions(+), 310 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/doc-issue.md b/.github/ISSUE_TEMPLATE/doc-issue.md index 8fcd3f09ff98..89afb7dffe5b 100644 --- a/.github/ISSUE_TEMPLATE/doc-issue.md +++ b/.github/ISSUE_TEMPLATE/doc-issue.md @@ -36,7 +36,7 @@ Check the .NET target framework(s) being used, and include the version number(s) * [ ] .NET Framework * [ ] .NET Standard -If using the .NET Core SDK, include `dotnet --info` output. If using .NET Framework without the .NET Core SDK, include info from Visual Studio's **Help** > **About Microsoft Visual Studio** dialog. +If using the .NET SDK, include `dotnet --info` output. If using .NET Framework without the .NET SDK, include info from Visual Studio's **Help** > **About Microsoft Visual Studio** dialog.
dotnet --info output or About VS info diff --git a/aspnetcore/blazor/call-web-api.md b/aspnetcore/blazor/call-web-api.md index 14d631c27878..4f37366c71e7 100644 --- a/aspnetcore/blazor/call-web-api.md +++ b/aspnetcore/blazor/call-web-api.md @@ -61,7 +61,7 @@ In the app's `Program` file, call: * : Enables token acquisition to call web APIs. * `AddDownstreamApi`: Microsoft Identity Web packages provide API to create a named downstream web service for making web API calls. is injected into a server-side class, which is used to call to obtain weather data from an external web API (`MinimalApiJwt` project). -* : Adds the .NET Core distributed token caches to the service collection. +* : Adds the .NET distributed token caches to the service collection. * : Adds a default implementation of that stores cache items in memory. * Configure the distributed token cache options (): * In development for debugging purposes, you can disable the L1 cache by setting to `true`. ***Be sure to reset it back to `false` for production.*** diff --git a/aspnetcore/blazor/host-and-deploy/webassembly/github-pages.md b/aspnetcore/blazor/host-and-deploy/webassembly/github-pages.md index cf4c7128a0cf..e0e900d01c7a 100644 --- a/aspnetcore/blazor/host-and-deploy/webassembly/github-pages.md +++ b/aspnetcore/blazor/host-and-deploy/webassembly/github-pages.md @@ -63,7 +63,7 @@ The GitHub-hosted Ubuntu (latest) server has a version of the .NET SDK pre-insta 1. Go to the [**Available Images** section of the `actions/runner-images` GitHub repository](https://github.com/actions/runner-images?tab=readme-ov-file#available-images). 1. Locate the `ubuntu-latest` image, which is the first table row. 1. Select the link in the `Included Software` column. -1. Scroll down to the *.NET Tools* section to see the .NET Core SDK installed with the image. +1. Scroll down to the *.NET Tools* section to see the .NET SDK installed with the image. ## Deployment notes diff --git a/aspnetcore/blazor/hosting-models.md b/aspnetcore/blazor/hosting-models.md index 3d923e96890b..f84eec1bec4b 100644 --- a/aspnetcore/blazor/hosting-models.md +++ b/aspnetcore/blazor/hosting-models.md @@ -65,8 +65,8 @@ On the client, the Blazor script establishes the SignalR connection with the ser The Blazor Server hosting model offers several benefits: * Download size is significantly smaller than when the Blazor WebAssembly hosting model is used, and the app loads much faster. -* The app takes full advantage of server capabilities, including the use of .NET Core APIs. -* .NET Core on the server is used to run the app, so existing .NET tooling, such as debugging, works as expected. +* The app takes full advantage of server capabilities, including the use of .NET APIs. +* .NET on the server is used to run the app, so existing .NET tooling, such as debugging, works as expected. * Thin clients are supported. For example, Blazor Server works with browsers that don't support WebAssembly and on resource-constrained devices. * The app's .NET/C# code base, including the app's component code, isn't served to clients. @@ -148,7 +148,7 @@ WebAssembly-rendered Razor components can use [native dependencies](xref:blazor/ :::moniker range="< aspnetcore-6.0" -Blazor WebAssembly includes support for trimming unused code from .NET Core framework libraries. For more information, see . +Blazor WebAssembly includes support for trimming unused code from .NET libraries. For more information, see . :::moniker-end diff --git a/aspnetcore/blazor/security/includes/troubleshoot-server.md b/aspnetcore/blazor/security/includes/troubleshoot-server.md index c6ba8cdfc3f9..6c22bdd334fc 100644 --- a/aspnetcore/blazor/security/includes/troubleshoot-server.md +++ b/aspnetcore/blazor/security/includes/troubleshoot-server.md @@ -93,7 +93,7 @@ One approach to prevent lingering cookies and site data from interfering with te ### App upgrades -A functioning app may fail immediately after upgrading either the .NET Core SDK on the development machine or changing package versions within the app. In some cases, incoherent packages may break an app when performing major upgrades. Most of these issues can be fixed by following these instructions: +A functioning app may fail immediately after upgrading either the .NET SDK on the development machine or changing package versions within the app. In some cases, incoherent packages may break an app when performing major upgrades. Most of these issues can be fixed by following these instructions: 1. Clear the local system's NuGet package caches by executing [`dotnet nuget locals all --clear`](/dotnet/core/tools/dotnet-nuget-locals) from a command shell. 1. Delete the project's `bin` and `obj` folders. diff --git a/aspnetcore/blazor/security/includes/troubleshoot-wasm.md b/aspnetcore/blazor/security/includes/troubleshoot-wasm.md index 7d817920961e..0a8328587928 100644 --- a/aspnetcore/blazor/security/includes/troubleshoot-wasm.md +++ b/aspnetcore/blazor/security/includes/troubleshoot-wasm.md @@ -83,7 +83,7 @@ One approach to prevent lingering cookies and site data from interfering with te ### App upgrades -A functioning app may fail immediately after upgrading either the .NET Core SDK on the development machine or changing package versions within the app. In some cases, incoherent packages may break an app when performing major upgrades. Most of these issues can be fixed by following these instructions: +A functioning app may fail immediately after upgrading either the .NET SDK on the development machine or changing package versions within the app. In some cases, incoherent packages may break an app when performing major upgrades. Most of these issues can be fixed by following these instructions: 1. Clear the local system's NuGet package caches by executing [`dotnet nuget locals all --clear`](/dotnet/core/tools/dotnet-nuget-locals) from a command shell. 1. Delete the project's `bin` and `obj` folders. diff --git a/aspnetcore/blazor/security/index.md b/aspnetcore/blazor/security/index.md index 00386963236a..2022b497d7c7 100644 --- a/aspnetcore/blazor/security/index.md +++ b/aspnetcore/blazor/security/index.md @@ -180,7 +180,7 @@ Permissible authentication values for the `{AUTHENTICATION}` placeholder are sho :::moniker-end -For more information, see the [`dotnet new`](/dotnet/core/tools/dotnet-new) command in the .NET Core Guide. +For more information, see the [`dotnet new`](/dotnet/core/tools/dotnet-new) command in the .NET Guide. # [.NET CLI](#tab/net-cli/) @@ -219,7 +219,7 @@ Permissible authentication values for the `{AUTHENTICATION}` placeholder are sho For more information: -* See the [`dotnet new`](/dotnet/core/tools/dotnet-new) command in the .NET Core Guide. +* See the [`dotnet new`](/dotnet/core/tools/dotnet-new) command in the .NET Guide. * Execute the help command for the template in a command shell: ```dotnetcli diff --git a/aspnetcore/blazor/security/webassembly/additional-scenarios.md b/aspnetcore/blazor/security/webassembly/additional-scenarios.md index 2cc3487ea4e4..edb0ec09b928 100644 --- a/aspnetcore/blazor/security/webassembly/additional-scenarios.md +++ b/aspnetcore/blazor/security/webassembly/additional-scenarios.md @@ -1544,7 +1544,7 @@ For more information, see [`AuthenticationService.ts` in the `dotnet/aspnetcore` If an app requires a custom version of the [Microsoft Authentication Library for JavaScript (`MSAL.js`)](https://www.npmjs.com/package/@azure/msal-browser), perform the following steps: -1. Confirm the system has the latest developer .NET SDK or obtain and install the latest developer SDK from [.NET Core SDK: Installers and Binaries](https://github.com/dotnet/installer#installers-and-binaries). Configuration of internal NuGet feeds isn't required for this scenario. +1. Confirm the system has the latest developer .NET SDK or obtain and install the latest developer SDK from [.NET SDK: Installers and Binaries](https://github.com/dotnet/sdk#installing-the-sdk). Configuration of internal NuGet feeds isn't required for this scenario. 1. Set up the `dotnet/aspnetcore` GitHub repository for development following the documentation at [Build ASP.NET Core from Source](https://github.com/dotnet/aspnetcore/blob/main/docs/BuildFromSource.md). Fork and clone or download a ZIP archive of the [`dotnet/aspnetcore` GitHub repository](https://github.com/dotnet/aspnetcore). 1. Open the `src/Components/WebAssembly/Authentication.Msal/src/Interop/package.json` file and set the desired version of `@azure/msal-browser`. For a list of released versions, visit the [`@azure/msal-browser` npm website](https://www.npmjs.com/package/@azure/msal-browser) and select the **Versions** tab. 1. Build the `Authentication.Msal` project in the `src/Components/WebAssembly/Authentication.Msal/src` folder with the `yarn build` command in a command shell. diff --git a/aspnetcore/blazor/security/webassembly/hosted-with-identity-server.md b/aspnetcore/blazor/security/webassembly/hosted-with-identity-server.md index aa430cab4c88..6c7a29d78df2 100644 --- a/aspnetcore/blazor/security/webassembly/hosted-with-identity-server.md +++ b/aspnetcore/blazor/security/webassembly/hosted-with-identity-server.md @@ -69,7 +69,7 @@ The output location specified with the optional `-o|--output` option creates a p Avoid using dashes (`-`) in the project name that break the formation of the OIDC app identifier. Logic in the Blazor WebAssembly project template uses the project name for an OIDC app identifier in the solution's configuration, and dashes aren't permitted in an OIDC app identifier. Pascal case (`BlazorSample`) or underscores (`Blazor_Sample`) are acceptable alternatives. -For more information, see the [`dotnet new`](/dotnet/core/tools/dotnet-new) command in the .NET Core Guide. +For more information, see the [`dotnet new`](/dotnet/core/tools/dotnet-new) command in the .NET Guide. --- diff --git a/aspnetcore/blazor/security/webassembly/standalone-with-authentication-library.md b/aspnetcore/blazor/security/webassembly/standalone-with-authentication-library.md index a874607094e7..377aa3e199b3 100644 --- a/aspnetcore/blazor/security/webassembly/standalone-with-authentication-library.md +++ b/aspnetcore/blazor/security/webassembly/standalone-with-authentication-library.md @@ -77,7 +77,7 @@ dotnet new blazorwasm -au Individual -o {PROJECT NAME} The output location specified with the `-o|--output` option creates a project folder if it doesn't exist and becomes part of the project's name. -For more information, see the [`dotnet new`](/dotnet/core/tools/dotnet-new) command in the .NET Core Guide. +For more information, see the [`dotnet new`](/dotnet/core/tools/dotnet-new) command in the .NET Guide. --- diff --git a/aspnetcore/blazor/security/webassembly/standalone-with-identity/index.md b/aspnetcore/blazor/security/webassembly/standalone-with-identity/index.md index 6e1e207b06a6..e4ca9f32bf1e 100644 --- a/aspnetcore/blazor/security/webassembly/standalone-with-identity/index.md +++ b/aspnetcore/blazor/security/webassembly/standalone-with-identity/index.md @@ -353,7 +353,7 @@ One approach to prevent lingering cookies and site data from interfering with te ### App upgrades -A functioning app may fail immediately after upgrading either the .NET Core SDK on the development machine or changing package versions within the app. In some cases, incoherent packages may break an app when performing major upgrades. Most of these issues can be fixed by following these instructions: +A functioning app may fail immediately after upgrading either the .NET SDK on the development machine or changing package versions within the app. In some cases, incoherent packages may break an app when performing major upgrades. Most of these issues can be fixed by following these instructions: 1. Clear the local system's NuGet package caches by executing [`dotnet nuget locals all --clear`](/dotnet/core/tools/dotnet-nuget-locals) from a command shell. 1. Delete the project's `bin` and `obj` folders. diff --git a/aspnetcore/blazor/tooling.md b/aspnetcore/blazor/tooling.md index c620feb11293..01e03aec573c 100644 --- a/aspnetcore/blazor/tooling.md +++ b/aspnetcore/blazor/tooling.md @@ -567,7 +567,7 @@ To include sample pages and a layout based on Bootstrap styling, use the **Inclu ### Additional guidance on template options * -* The *.NET default templates for dotnet new* article in the .NET Core documentation: +* The *.NET default templates for dotnet new* article in the .NET documentation: * [`blazor`](/dotnet/core/tools/dotnet-new-sdk-templates#blazor) * [`blazorwasm`](/dotnet/core/tools/dotnet-new-sdk-templates#blazorwasm) * Passing the help option (`-h` or `--help`) to the [`dotnet new`](/dotnet/core/tools/dotnet-new) CLI command in a command shell: @@ -580,7 +580,7 @@ To include sample pages and a layout based on Bootstrap styling, use the **Inclu For more information on template options, see the following resources: -* The *.NET default templates for dotnet new* article in the .NET Core documentation: +* The *.NET default templates for dotnet new* article in the .NET documentation: * [`blazorserver`](/dotnet/core/tools/dotnet-new-sdk-templates#blazorserver) (includes `blazorserver-empty` options) * [`blazorwasm`](/dotnet/core/tools/dotnet-new-sdk-templates#blazorwasm) (includes `blazorwasm-empty` options) * Passing the help option (`-h` or `--help`) to the [`dotnet new`](/dotnet/core/tools/dotnet-new) CLI command in a command shell: @@ -595,7 +595,7 @@ For more information on template options, see the following resources: For more information on template options, see the following resources: -* The *.NET default templates for dotnet new* article in the .NET Core documentation: +* The *.NET default templates for dotnet new* article in the .NET documentation: * [`blazorserver`](/dotnet/core/tools/dotnet-new-sdk-templates#blazorserver) * [`blazorwasm`](/dotnet/core/tools/dotnet-new-sdk-templates#blazorwasm) * Passing the help option (`-h` or `--help`) to the [`dotnet new`](/dotnet/core/tools/dotnet-new) CLI command in a command shell: diff --git a/aspnetcore/blazor/tutorials/movie-database-app/part-2.md b/aspnetcore/blazor/tutorials/movie-database-app/part-2.md index fd54a3234242..13094d2fddd3 100644 --- a/aspnetcore/blazor/tutorials/movie-database-app/part-2.md +++ b/aspnetcore/blazor/tutorials/movie-database-app/part-2.md @@ -499,7 +499,7 @@ Stop the app using the following approach: EF Core documentation: * [Entity Framework Core](/ef/core/) -* [Entity Framework Core tools reference - .NET Core CLI](/ef/core/cli/dotnet) +* [Entity Framework Core tools reference - .NET CLI](/ef/core/cli/dotnet) * [Data Types](/ef/core/modeling/relational/data-types) * : The API document includes basic information on how entities are saved and change detection. * [Environment-based `Startup` class and methods](xref:fundamentals/environments#environment-based-startup-class-and-methods) diff --git a/aspnetcore/client-side/libman/libman-cli.md b/aspnetcore/client-side/libman/libman-cli.md index d9c0f50096f2..25e23b05d1ee 100644 --- a/aspnetcore/client-side/libman/libman-cli.md +++ b/aspnetcore/client-side/libman/libman-cli.md @@ -25,7 +25,7 @@ dotnet tool install -g Microsoft.Web.LibraryManager.Cli [!INCLUDE[](~/includes/dotnet-tool-install-arch-options.md)] -A [.NET Core Global Tool](/dotnet/core/tools/global-tools#install-a-global-tool) is installed from the [Microsoft.Web.LibraryManager.Cli](https://www.nuget.org/packages/Microsoft.Web.LibraryManager.Cli/) NuGet package. +A [.NET Global Tool](/dotnet/core/tools/global-tools#install-a-global-tool) is installed from the [`Microsoft.Web.LibraryManager.Cli`](https://www.nuget.org/packages/Microsoft.Web.LibraryManager.Cli/) NuGet package. ## Usage diff --git a/aspnetcore/data/ef-rp/sort-filter-page.md b/aspnetcore/data/ef-rp/sort-filter-page.md index 2adb86495d58..af0f04f4a68e 100644 --- a/aspnetcore/data/ef-rp/sort-filter-page.md +++ b/aspnetcore/data/ef-rp/sort-filter-page.md @@ -114,7 +114,7 @@ Where(s => s.LastName.ToUpper().Contains(searchString.ToUpper())` The preceding code would ensure that the filter is case-insensitive even if the `Where` method is called on an `IEnumerable` or runs on SQLite. -When `Contains` is called on an `IEnumerable` collection, the .NET Core implementation is used. When `Contains` is called on an `IQueryable` object, the database implementation is used. +When `Contains` is called on an `IEnumerable` collection, the .NET implementation is used. When `Contains` is called on an `IQueryable` object, the database implementation is used. Calling `Contains` on an `IQueryable` is usually preferable for performance reasons. With `IQueryable`, the filtering is done by the database server. If an `IEnumerable` is created first, all the rows have to be returned from the database server. @@ -377,7 +377,7 @@ For example, the .NET Framework implementation of `Contains` performs a case-sen `Where(s => s.LastName.ToUpper().Contains(searchString.ToUpper())` -The preceding code would ensure that results are case-insensitive if the code changes to use `IEnumerable`. When `Contains` is called on an `IEnumerable` collection, the .NET Core implementation is used. When `Contains` is called on an `IQueryable` object, the database implementation is used. Returning an `IEnumerable` from a repository can have a significant performance penalty: +The preceding code would ensure that results are case-insensitive if the code changes to use `IEnumerable`. When `Contains` is called on an `IEnumerable` collection, the .NET implementation is used. When `Contains` is called on an `IQueryable` object, the database implementation is used. Returning an `IEnumerable` from a repository can have a significant performance penalty: 1. All the rows are returned from the DB server. 1. The filter is applied to all the returned rows in the application. diff --git a/aspnetcore/fundamentals/best-practices.md b/aspnetcore/fundamentals/best-practices.md index bb2fc0906c86..8e7130e00cf4 100644 --- a/aspnetcore/fundamentals/best-practices.md +++ b/aspnetcore/fundamentals/best-practices.md @@ -65,7 +65,7 @@ Beginning with ASP.NET Core 3.0, `IAsyncEnumerable` can be used as an alterna ## Minimize large object allocations -The [.NET Core garbage collector](/dotnet/standard/garbage-collection/) manages allocation and release of memory automatically in ASP.NET Core apps. Automatic garbage collection generally means that developers don't need to worry about how or when memory is freed. However, cleaning up unreferenced objects takes CPU time, so developers should minimize allocating objects in [hot code paths](#understand-hot-code-paths). Garbage collection is especially expensive on large objects (>= 85,000 bytes). Large objects are stored on the [large object heap](/dotnet/standard/garbage-collection/large-object-heap) and require a full (generation 2) garbage collection to clean up. Unlike generation 0 and generation 1 collections, a generation 2 collection requires a temporary suspension of app execution. Frequent allocation and de-allocation of large objects can cause inconsistent performance. +The [.NET garbage collector](/dotnet/standard/garbage-collection/) manages allocation and release of memory automatically in ASP.NET Core apps. Automatic garbage collection generally means that developers don't need to worry about how or when memory is freed. However, cleaning up unreferenced objects takes CPU time, so developers should minimize allocating objects in [hot code paths](#understand-hot-code-paths). Garbage collection is especially expensive on large objects (>= 85,000 bytes). Large objects are stored on the [large object heap](/dotnet/standard/garbage-collection/large-object-heap) and require a full (generation 2) garbage collection to clean up. Unlike generation 0 and generation 1 collections, a generation 2 collection requires a temporary suspension of app execution. Frequent allocation and de-allocation of large objects can cause inconsistent performance. Recommendations: @@ -154,7 +154,7 @@ Recommendations: ## Use the latest ASP.NET Core release -Each new release of ASP.NET Core includes performance improvements. Optimizations in .NET Core and ASP.NET Core mean that newer versions generally outperform older versions. For example, .NET Core 2.1 added support for compiled regular expressions and benefitted from [Span\](/dotnet/standard/memory-and-spans/memory-t-usage-guidelines). ASP.NET Core 2.2 added support for HTTP/2. [ASP.NET Core 3.0 adds many improvements](xref:aspnetcore-3.0) that reduce memory usage and improve throughput. If performance is a priority, consider upgrading to the current version of ASP.NET Core. +Each new release of ASP.NET Core includes performance improvements. Optimizations in .NET and ASP.NET Core mean that newer versions generally outperform older versions. For example, .NET Core 2.1 added support for compiled regular expressions and benefitted from [Span\](/dotnet/standard/memory-and-spans/memory-t-usage-guidelines). ASP.NET Core 2.2 added support for HTTP/2. [ASP.NET Core 3.0 adds many improvements](xref:aspnetcore-3.0) that reduce memory usage and improve throughput. If performance is a priority, consider upgrading to the current version of ASP.NET Core. ## Minimize exceptions diff --git a/aspnetcore/fundamentals/choose-aspnet-framework.md b/aspnetcore/fundamentals/choose-aspnet-framework.md index 5ee7e1746b9c..322b61e80c54 100644 --- a/aspnetcore/fundamentals/choose-aspnet-framework.md +++ b/aspnetcore/fundamentals/choose-aspnet-framework.md @@ -32,7 +32,7 @@ The following table compares ASP.NET Core to ASP.NET 4.x. |Multiple versions per machine|One version per machine| |Develop with [Visual Studio](https://visualstudio.microsoft.com/vs/) or [Visual Studio Code](https://code.visualstudio.com/) using C# or F#|Develop with [Visual Studio](https://visualstudio.microsoft.com/vs/) using C#, VB, or F#| |Higher performance than ASP.NET 4.x|Good performance| -|[Use .NET Core runtime](/dotnet/standard/choosing-core-framework-server)|Use .NET Framework runtime| +|[Use the latest .NET runtime](/dotnet/standard/choosing-core-framework-server)|Use .NET Framework runtime| See [ASP.NET Core targeting .NET Framework](xref:index#target-framework) for information on ASP.NET Core 2.x support on .NET Framework. diff --git a/aspnetcore/fundamentals/dotnet-scaffold-telemetry.md b/aspnetcore/fundamentals/dotnet-scaffold-telemetry.md index fa449ceb24ad..3f55a0145ffc 100644 --- a/aspnetcore/fundamentals/dotnet-scaffold-telemetry.md +++ b/aspnetcore/fundamentals/dotnet-scaffold-telemetry.md @@ -66,5 +66,5 @@ The telemetry feature collects the following data. ## Additional resources -* [.NET Core SDK telemetry](/dotnet/core/tools/telemetry) +* [.NET SDK telemetry](/dotnet/core/tools/telemetry) * [.NET CLI telemetry data](https://dotnet.microsoft.com/platform/telemetry) diff --git a/aspnetcore/fundamentals/file-providers.md b/aspnetcore/fundamentals/file-providers.md index 12b1fe1d470f..23b46a643ff8 100644 --- a/aspnetcore/fundamentals/file-providers.md +++ b/aspnetcore/fundamentals/file-providers.md @@ -21,7 +21,7 @@ ASP.NET Core abstracts file system access through the use of File Providers. Fil * exposes the app's [content root](xref:fundamentals/index#content-root) and [web root](xref:fundamentals/index#web-root) as `IFileProvider` types. * [Static File Middleware](xref:fundamentals/static-files) uses File Providers to locate static files. * [Razor](xref:mvc/views/razor) uses File Providers to locate pages and views. -* .NET Core tooling uses File Providers and glob patterns to specify which files should be published. +* .NET tooling uses File Providers and glob patterns to specify which files should be published. [View or download sample code](https://github.com/dotnet/AspNetCore.Docs/tree/main/aspnetcore/fundamentals/file-providers/samples) ([how to download](xref:index#how-to-download-a-sample)) @@ -172,7 +172,7 @@ ASP.NET Core abstracts file system access through the use of File Providers. Fil * exposes the app's [content root](xref:fundamentals/index#content-root) and [web root](xref:fundamentals/index#web-root) as `IFileProvider` types. * [Static File Middleware](xref:fundamentals/static-files) uses File Providers to locate static files. * [Razor](xref:mvc/views/razor) uses File Providers to locate pages and views. -* .NET Core tooling uses File Providers and glob patterns to specify which files should be published. +* .NET tooling uses File Providers and glob patterns to specify which files should be published. [View or download sample code](https://github.com/dotnet/AspNetCore.Docs/tree/main/aspnetcore/fundamentals/file-providers/samples) ([how to download](xref:index#how-to-download-a-sample)) diff --git a/aspnetcore/fundamentals/host/generic-host.md b/aspnetcore/fundamentals/host/generic-host.md index da15b8aab67e..2185929dbcd6 100644 --- a/aspnetcore/fundamentals/host/generic-host.md +++ b/aspnetcore/fundamentals/host/generic-host.md @@ -1,7 +1,7 @@ --- title: .NET Generic Host in ASP.NET Core author: tdykstra -description: Use .NET Core Generic Host in ASP.NET Core apps. Generic Host is responsible for app startup and lifetime management. +description: Use .NET Generic Host in ASP.NET Core apps. Generic Host is responsible for app startup and lifetime management. monikerRange: '>= aspnetcore-3.1' ms.author: tdykstra ms.custom: mvc @@ -434,7 +434,7 @@ The difference between `Run*` and `Start*` methods is that `Run*` methods wait f :::moniker range=">= aspnetcore-5.0 < aspnetcore-6.0" -The ASP.NET Core templates create a .NET Core Generic Host (). +The ASP.NET Core templates create a .NET Generic Host (). This article provides information on using .NET Generic Host in ASP.NET Core. For information on using .NET Generic Host in console apps, see [.NET Generic Host](/dotnet/core/extensions/generic-host). @@ -952,7 +952,7 @@ public class Program :::moniker range="< aspnetcore-5.0" -The ASP.NET Core templates create a .NET Core Generic Host (). +The ASP.NET Core templates create a .NET Generic Host (). This article provides information on using .NET Generic Host in ASP.NET Core. For information on using .NET Generic Host in console apps, see [.NET Generic Host](/dotnet/core/extensions/generic-host). diff --git a/aspnetcore/fundamentals/host/platform-specific-configuration.md b/aspnetcore/fundamentals/host/platform-specific-configuration.md index 8f2e0d00be83..ab5ea5a1cdb5 100644 --- a/aspnetcore/fundamentals/host/platform-specific-configuration.md +++ b/aspnetcore/fundamentals/host/platform-specific-configuration.md @@ -126,7 +126,7 @@ The app's Index page reads and renders the configuration values for the two keys ### Console app without an entry point -*This approach is only available for .NET Core apps, not .NET Framework.* +*This approach is only available for .NET apps, not .NET Framework.* A dynamic hosting startup enhancement that doesn't require a compile-time reference for activation can be provided in a console app without an entry point that contains a `HostingStartup` attribute. Publishing the console app produces a hosting startup assembly that can be consumed from the runtime store. @@ -526,7 +526,7 @@ The app's Index page reads and renders the configuration values for the two keys ### Console app without an entry point -*This approach is only available for .NET Core apps, not .NET Framework.* +*This approach is only available for .NET apps, not .NET Framework.* A dynamic hosting startup enhancement that doesn't require a compile-time reference for activation can be provided in a console app without an entry point that contains a `HostingStartup` attribute. Publishing the console app produces a hosting startup assembly that can be consumed from the runtime store. diff --git a/aspnetcore/fundamentals/http-logging/index.md b/aspnetcore/fundamentals/http-logging/index.md index 0455181c262b..37e539bad44e 100644 --- a/aspnetcore/fundamentals/http-logging/index.md +++ b/aspnetcore/fundamentals/http-logging/index.md @@ -1,5 +1,5 @@ --- -title: HTTP logging in .NET Core and ASP.NET Core +title: HTTP logging in .NET and ASP.NET Core author: tdykstra description: Learn how to log HTTP requests and responses. monikerRange: '>= aspnetcore-6.0' diff --git a/aspnetcore/fundamentals/index.md b/aspnetcore/fundamentals/index.md index 2de2dc70567d..514af822d7f6 100644 --- a/aspnetcore/fundamentals/index.md +++ b/aspnetcore/fundamentals/index.md @@ -137,7 +137,7 @@ ASP.NET Core provides a [configuration](xref:fundamentals/configuration/index) f By [default](xref:fundamentals/configuration/index#default), ASP.NET Core apps are configured to read from `appsettings.json`, environment variables, the command line, and more. When the app's configuration is loaded, values from environment variables override values from `appsettings.json`. -For managing confidential configuration data such as passwords in the development environment, .NET Core provides the [Secret Manager](xref:security/app-secrets#secret-manager). For production secrets, we recommend [Azure Key Vault](xref:security/key-vault-configuration). +For managing confidential configuration data such as passwords in the development environment, .NET provides the [Secret Manager](xref:security/app-secrets#secret-manager). For production secrets, we recommend [Azure Key Vault](xref:security/key-vault-configuration). For more information, see . diff --git a/aspnetcore/fundamentals/index/includes/index3-7.md b/aspnetcore/fundamentals/index/includes/index3-7.md index a2dfe312ad90..df58aa68f580 100644 --- a/aspnetcore/fundamentals/index/includes/index3-7.md +++ b/aspnetcore/fundamentals/index/includes/index3-7.md @@ -108,7 +108,7 @@ ASP.NET Core provides a [configuration](xref:fundamentals/configuration/index) f By [default](xref:fundamentals/configuration/index#default), ASP.NET Core apps are configured to read from `appsettings.json`, environment variables, the command line, and more. When the app's configuration is loaded, values from environment variables override values from `appsettings.json`. -For managing confidential configuration data such as passwords, .NET Core provides the [Secret Manager](xref:security/app-secrets#secret-manager). For production secrets, we recommend [Azure Key Vault](xref:security/key-vault-configuration). +For managing confidential configuration data such as passwords, .NET provides the [Secret Manager](xref:security/app-secrets#secret-manager). For production secrets, we recommend [Azure Key Vault](xref:security/key-vault-configuration). For more information, see . @@ -329,7 +329,7 @@ By [default](xref:fundamentals/configuration/index#default), ASP.NET Core apps a The preferred way to read related configuration values is using the [options pattern](xref:fundamentals/configuration/options). For more information, see [Bind hierarchical configuration data using the options pattern](xref:fundamentals/configuration/index#optpat). -For managing confidential configuration data such as passwords, .NET Core provides the [Secret Manager](xref:security/app-secrets#secret-manager). For production secrets, we recommend [Azure Key Vault](xref:security/key-vault-configuration). +For managing confidential configuration data such as passwords, .NET provides the [Secret Manager](xref:security/app-secrets#secret-manager). For production secrets, we recommend [Azure Key Vault](xref:security/key-vault-configuration). For more information, see . diff --git a/aspnetcore/fundamentals/index/includes/index8.md b/aspnetcore/fundamentals/index/includes/index8.md index 30a71cf07228..65566ba02b6b 100644 --- a/aspnetcore/fundamentals/index/includes/index8.md +++ b/aspnetcore/fundamentals/index/includes/index8.md @@ -110,7 +110,7 @@ ASP.NET Core provides a [configuration](xref:fundamentals/configuration/index) f By [default](xref:fundamentals/configuration/index#default), ASP.NET Core apps are configured to read from `appsettings.json`, environment variables, the command line, and more. When the app's configuration is loaded, values from environment variables override values from `appsettings.json`. -For managing confidential configuration data such as passwords, .NET Core provides the [Secret Manager](xref:security/app-secrets#secret-manager). For production secrets, we recommend [Azure Key Vault](xref:security/key-vault-configuration). +For managing confidential configuration data such as passwords, .NET provides the [Secret Manager](xref:security/app-secrets#secret-manager). For production secrets, we recommend [Azure Key Vault](xref:security/key-vault-configuration). For more information, see . diff --git a/aspnetcore/fundamentals/logging/index.md b/aspnetcore/fundamentals/logging/index.md index e3669581f76f..fdf5f4ab5259 100644 --- a/aspnetcore/fundamentals/logging/index.md +++ b/aspnetcore/fundamentals/logging/index.md @@ -1,5 +1,5 @@ --- -title: Logging in .NET Core and ASP.NET Core +title: Logging in .NET and ASP.NET Core author: tdykstra description: Learn how to use the logging framework provided by the Microsoft.Extensions.Logging NuGet package. monikerRange: '>= aspnetcore-3.1' @@ -9,7 +9,7 @@ ms.date: 09/18/2024 uid: fundamentals/logging/index --- -# Logging in .NET Core and ASP.NET Core +# Logging in .NET and ASP.NET Core [!INCLUDE[](~/includes/not-latest-version.md)] @@ -494,14 +494,14 @@ The `EventSource` provider writes to a cross-platform event source with the name #### dotnet-trace tooling -The [`dotnet-trace`](/dotnet/core/diagnostics/dotnet-trace) tool is a cross-platform CLI global tool that enables the collection of .NET Core traces of a running process. The tool collects provider data using a . +The [`dotnet-trace`](/dotnet/core/diagnostics/dotnet-trace) tool is a cross-platform CLI global tool that enables the collection of .NET traces of a running process. The tool collects provider data using a . For installation instructions, see [`dotnet-trace`](/dotnet/core/diagnostics/dotnet-trace). Use the `dotnet-trace` tooling to collect a trace from an app: 1. Run the app with the `dotnet run` command. -1. Determine the process identifier (PID) of the .NET Core app: +1. Determine the process identifier (PID) of the .NET app: ```dotnetcli dotnet-trace ps @@ -648,7 +648,7 @@ If the app doesn't build the host with * @@ -735,7 +735,7 @@ For more information, see the following resources: * [Application Insights overview](/azure/application-insights/app-insights-overview) * [Application Insights for ASP.NET Core applications](/azure/azure-monitor/app/asp-net-core): Start here if you want to implement the full range of Application Insights telemetry along with logging. -* [ApplicationInsightsLoggerProvider for .NET Core ILogger logs](/azure/azure-monitor/app/ilogger): Start here if you want to implement the logging provider without the rest of Application Insights telemetry. +* [ApplicationInsightsLoggerProvider for .NET ILogger logs](/azure/azure-monitor/app/ilogger): Start here if you want to implement the logging provider without the rest of Application Insights telemetry. * [Application Insights logging adapters](/azure/azure-monitor/app/asp-net-trace-logs) * [Install, configure, and initialize the Application Insights SDK](/training/modules/instrument-web-app-code-with-application-insights) interactive tutorial. @@ -775,7 +775,7 @@ The Logging API doesn't include a scenario to change log levels while an app is ## ILogger and ILoggerFactory -The and interfaces and implementations are included in the .NET Core SDK. They are also available in the following NuGet packages: +The and interfaces and implementations are included in the .NET SDK. They are also available in the following NuGet packages: * The interfaces are in [`Microsoft.Extensions.Logging.Abstractions`](https://www.nuget.org/packages/Microsoft.Extensions.Logging.Abstractions/). * The default implementations are in [`Microsoft.Extensions.Logging`](https://www.nuget.org/packages/microsoft.extensions.logging/). diff --git a/aspnetcore/fundamentals/openapi/aspnetcore-openapi.md b/aspnetcore/fundamentals/openapi/aspnetcore-openapi.md index 10b500ba68f2..80e07068e5b7 100644 --- a/aspnetcore/fundamentals/openapi/aspnetcore-openapi.md +++ b/aspnetcore/fundamentals/openapi/aspnetcore-openapi.md @@ -225,7 +225,7 @@ dotnet build type obj\{ProjectName}.json ``` -# [.NET Core CLI](#tab/netcore-cli) +# [.NET CLI](#tab/netcore-cli) ```cli dotnet build diff --git a/aspnetcore/fundamentals/openapi/includes/aspnetcore-openapi9.md b/aspnetcore/fundamentals/openapi/includes/aspnetcore-openapi9.md index 756c29f61ddc..08ea7d28a184 100644 --- a/aspnetcore/fundamentals/openapi/includes/aspnetcore-openapi9.md +++ b/aspnetcore/fundamentals/openapi/includes/aspnetcore-openapi9.md @@ -181,7 +181,7 @@ dotnet build type obj\{ProjectName}.json ``` -# [.NET Core CLI](#tab/netcore-cli) +# [.NET CLI](#tab/netcore-cli) ```cli dotnet build diff --git a/aspnetcore/fundamentals/openapi/openapi-tools.md b/aspnetcore/fundamentals/openapi/openapi-tools.md index 026e66eb107f..bd27a43b31a3 100644 --- a/aspnetcore/fundamentals/openapi/openapi-tools.md +++ b/aspnetcore/fundamentals/openapi/openapi-tools.md @@ -12,7 +12,7 @@ uid: fundamentals/openapi/openapi-tools -[Microsoft.dotnet-openapi](https://www.nuget.org/packages/Microsoft.dotnet-openapi) is a [.NET Core Global Tool](/dotnet/core/tools/global-tools) for managing [OpenAPI](https://github.com/OAI/OpenAPI-Specification) references within a project. +[Microsoft.dotnet-openapi](https://www.nuget.org/packages/Microsoft.dotnet-openapi) is a [.NET Global Tool](/dotnet/core/tools/global-tools) for managing [OpenAPI](https://github.com/OAI/OpenAPI-Specification) references within a project. ## Installation diff --git a/aspnetcore/fundamentals/owin.md b/aspnetcore/fundamentals/owin.md index 09da38883efe..7374ddd45c4d 100644 --- a/aspnetcore/fundamentals/owin.md +++ b/aspnetcore/fundamentals/owin.md @@ -14,7 +14,7 @@ By [Steve Smith](https://ardalis.com/) and [Rick Anderson](https://twitter.com/R ASP.NET Core: * Supports the Open Web Interface for .NET (OWIN). -* Has .NET Core compatible replacements for the `Microsoft.Owin.*` ([Katana](/aspnet/aspnet/overview/owin-and-katana/)) libraries. +* Has compatible replacements for the `Microsoft.Owin.*` ([Katana](/aspnet/aspnet/overview/owin-and-katana/)) libraries. OWIN allows web apps to be decoupled from web servers. It defines a standard way for middleware to be used in a pipeline to handle requests and associated responses. ASP.NET Core applications and middleware can interoperate with OWIN-based applications, servers, and middleware. diff --git a/aspnetcore/fundamentals/servers/httpsys.md b/aspnetcore/fundamentals/servers/httpsys.md index fb0f23ec667e..ec06debdf3f7 100644 --- a/aspnetcore/fundamentals/servers/httpsys.md +++ b/aspnetcore/fundamentals/servers/httpsys.md @@ -162,10 +162,10 @@ In Visual Studio, the default launch profile is for IIS Express. To run the proj Install either self-signed or CA-signed certificates in the server's **Local Machine** > **Personal** store. -1. If the app is a [framework-dependent deployment](/dotnet/core/deploying/#framework-dependent-deployments-fdd), install .NET Core, .NET Framework, or both (if the app is a .NET Core app targeting the .NET Framework). +1. If the app is a [framework-dependent deployment](/dotnet/core/deploying/#framework-dependent-deployments-fdd), install .NET, .NET Framework, or both (if the app is a .NET app targeting the .NET Framework). - * **.NET Core**: If the app requires .NET Core, obtain and run the **.NET Core Runtime** installer from [.NET Core Downloads](https://dotnet.microsoft.com/download). Don't install the full SDK on the server. - * **.NET Framework**: If the app requires .NET Framework, see the [.NET Framework installation guide](/dotnet/framework/install/). Install the required .NET Framework. The installer for the latest .NET Framework is available from the [.NET Core Downloads](https://dotnet.microsoft.com/download) page. + * **.NET**: If the app requires .NET, obtain and run the **.NET Runtime** installer from [.NET Downloads](https://dotnet.microsoft.com/download). Don't install the full SDK on the server. + * **.NET Framework**: If the app requires .NET Framework, see the [.NET Framework installation guide](/dotnet/framework/install/). Install the required .NET Framework. The installer for the latest .NET Framework is available from the [.NET Downloads](https://dotnet.microsoft.com/download) page. If the app is a [self-contained deployment](/dotnet/core/deploying/#self-contained-deployments-scd), the app includes the runtime in its deployment. No framework installation is required on the server. diff --git a/aspnetcore/fundamentals/servers/httpsys/includes/httpsys5-7.md b/aspnetcore/fundamentals/servers/httpsys/includes/httpsys5-7.md index c42fbb57e529..40388dfe1226 100644 --- a/aspnetcore/fundamentals/servers/httpsys/includes/httpsys5-7.md +++ b/aspnetcore/fundamentals/servers/httpsys/includes/httpsys5-7.md @@ -125,10 +125,10 @@ In Visual Studio, the default launch profile is for IIS Express. To run the proj Install either self-signed or CA-signed certificates in the server's **Local Machine** > **Personal** store. -1. If the app is a [framework-dependent deployment](/dotnet/core/deploying/#framework-dependent-deployments-fdd), install .NET Core, .NET Framework, or both (if the app is a .NET Core app targeting the .NET Framework). +1. If the app is a [framework-dependent deployment](/dotnet/core/deploying/#framework-dependent-deployments-fdd), install .NET, .NET Framework, or both (if the app is a .NET app targeting the .NET Framework). - * **.NET Core**: If the app requires .NET Core, obtain and run the **.NET Core Runtime** installer from [.NET Core Downloads](https://dotnet.microsoft.com/download). Don't install the full SDK on the server. - * **.NET Framework**: If the app requires .NET Framework, see the [.NET Framework installation guide](/dotnet/framework/install/). Install the required .NET Framework. The installer for the latest .NET Framework is available from the [.NET Core Downloads](https://dotnet.microsoft.com/download) page. + * **.NET**: If the app requires .NET, obtain and run the **.NET Runtime** installer from [.NET Downloads](https://dotnet.microsoft.com/download). Don't install the full SDK on the server. + * **.NET Framework**: If the app requires .NET Framework, see the [.NET Framework installation guide](/dotnet/framework/install/). Install the required .NET Framework. The installer for the latest .NET Framework is available from the [.NET Downloads](https://dotnet.microsoft.com/download) page. If the app is a [self-contained deployment](/dotnet/core/deploying/#self-contained-deployments-scd), the app includes the runtime in its deployment. No framework installation is required on the server. @@ -397,10 +397,10 @@ In Visual Studio, the default launch profile is for IIS Express. To run the proj Install either self-signed or CA-signed certificates in the server's **Local Machine** > **Personal** store. -1. If the app is a [framework-dependent deployment](/dotnet/core/deploying/#framework-dependent-deployments-fdd), install .NET Core, .NET Framework, or both (if the app is a .NET Core app targeting the .NET Framework). +1. If the app is a [framework-dependent deployment](/dotnet/core/deploying/#framework-dependent-deployments-fdd), install .NET, .NET Framework, or both (if the app is a .NET app targeting the .NET Framework). - * **.NET Core**: If the app requires .NET Core, obtain and run the **.NET Core Runtime** installer from [.NET Core Downloads](https://dotnet.microsoft.com/download). Don't install the full SDK on the server. - * **.NET Framework**: If the app requires .NET Framework, see the [.NET Framework installation guide](/dotnet/framework/install/). Install the required .NET Framework. The installer for the latest .NET Framework is available from the [.NET Core Downloads](https://dotnet.microsoft.com/download) page. + * **.NET**: If the app requires .NET, obtain and run the **.NET Runtime** installer from [.NET Downloads](https://dotnet.microsoft.com/download). Don't install the full SDK on the server. + * **.NET Framework**: If the app requires .NET Framework, see the [.NET Framework installation guide](/dotnet/framework/install/). Install the required .NET Framework. The installer for the latest .NET Framework is available from the [.NET Downloads](https://dotnet.microsoft.com/download) page. If the app is a [self-contained deployment](/dotnet/core/deploying/#self-contained-deployments-scd), the app includes the runtime in its deployment. No framework installation is required on the server. diff --git a/aspnetcore/fundamentals/servers/httpsys/includes/httpsys8-9.md b/aspnetcore/fundamentals/servers/httpsys/includes/httpsys8-9.md index ecb00d833bfd..b3ab4524d635 100644 --- a/aspnetcore/fundamentals/servers/httpsys/includes/httpsys8-9.md +++ b/aspnetcore/fundamentals/servers/httpsys/includes/httpsys8-9.md @@ -135,10 +135,10 @@ In Visual Studio, the default launch profile is for IIS Express. To run the proj Install either self-signed or CA-signed certificates in the server's **Local Machine** > **Personal** store. -1. If the app is a [framework-dependent deployment](/dotnet/core/deploying/#framework-dependent-deployments-fdd), install .NET Core, .NET Framework, or both (if the app is a .NET Core app targeting the .NET Framework). +1. If the app is a [framework-dependent deployment](/dotnet/core/deploying/#framework-dependent-deployments-fdd), install .NET, .NET Framework, or both (if the app is a .NET app targeting the .NET Framework). - * **.NET Core**: If the app requires .NET Core, obtain and run the **.NET Core Runtime** installer from [.NET Core Downloads](https://dotnet.microsoft.com/download). Don't install the full SDK on the server. - * **.NET Framework**: If the app requires .NET Framework, see the [.NET Framework installation guide](/dotnet/framework/install/). Install the required .NET Framework. The installer for the latest .NET Framework is available from the [.NET Core Downloads](https://dotnet.microsoft.com/download) page. + * **.NET**: If the app requires .NET, obtain and run the **.NET Runtime** installer from [.NET Downloads](https://dotnet.microsoft.com/download). Don't install the full SDK on the server. + * **.NET Framework**: If the app requires .NET Framework, see the [.NET Framework installation guide](/dotnet/framework/install/). Install the required .NET Framework. The installer for the latest .NET Framework is available from the [.NET Downloads](https://dotnet.microsoft.com/download) page. If the app is a [self-contained deployment](/dotnet/core/deploying/#self-contained-deployments-scd), the app includes the runtime in its deployment. No framework installation is required on the server. diff --git a/aspnetcore/fundamentals/servers/index.md b/aspnetcore/fundamentals/servers/index.md index 9196d11b4864..03bfc5bfe9a9 100644 --- a/aspnetcore/fundamentals/servers/index.md +++ b/aspnetcore/fundamentals/servers/index.md @@ -176,7 +176,7 @@ The server is launched when the Integrated Development Environment (IDE) or edit When launching the app from a command prompt in the project's folder, [dotnet run](/dotnet/core/tools/dotnet-run) launches the app and server (Kestrel and HTTP.sys only). The configuration is specified by the `-c|--configuration` option, which is set to either `Debug` (default) or `Release`. -A `launchSettings.json` file provides configuration when launching an app with `dotnet run` or with a debugger built into tooling, such as Visual Studio. If launch profiles are present in a `launchSettings.json` file, use the `--launch-profile {PROFILE NAME}` option with the `dotnet run` command or select the profile in Visual Studio. For more information, see [dotnet run](/dotnet/core/tools/dotnet-run) and [.NET Core distribution packaging](/dotnet/core/build/distribution-packaging). +A `launchSettings.json` file provides configuration when launching an app with `dotnet run` or with a debugger built into tooling, such as Visual Studio. If launch profiles are present in a `launchSettings.json` file, use the `--launch-profile {PROFILE NAME}` option with the `dotnet run` command or select the profile in Visual Studio. For more information, see [dotnet run](/dotnet/core/tools/dotnet-run) and [.NET distribution packaging](/dotnet/core/build/distribution-packaging). ## HTTP/2 support diff --git a/aspnetcore/fundamentals/servers/kestrel/diagnostics.md b/aspnetcore/fundamentals/servers/kestrel/diagnostics.md index c8938c75731f..c2d3a1509850 100644 --- a/aspnetcore/fundamentals/servers/kestrel/diagnostics.md +++ b/aspnetcore/fundamentals/servers/kestrel/diagnostics.md @@ -16,7 +16,7 @@ By [Sourabh Shirhatti](https://twitter.com/sshirhatti) This article provides guidance for gathering diagnostics from Kestrel to help troubleshoot issues. Topics covered include: -* **Logging**: Structured logs written to [.NET Core logging](xref:fundamentals/logging/index). is used by app frameworks to write logs, and by users for their own logging in an app. +* **Logging**: Structured logs written to [.NET logging](xref:fundamentals/logging/index). is used by app frameworks to write logs, and by users for their own logging in an app. * **Metrics**: Representation of data measures over intervals of time, for example, requests per second. Metrics are emitted using `EventCounter` and can be observed using the [dotnet-counters](/dotnet/core/diagnostics/dotnet-counters) command line tool or with [Application Insights](/azure/azure-monitor/app/eventcounters). * **DiagnosticSource**: `DiagnosticSource` is a mechanism for production-time logging with rich data payloads for consumption within the process. Unlike logging, which assumes data will leave the process and expects serializable data, `DiagnosticSource` works well with complex data. diff --git a/aspnetcore/fundamentals/servers/kestrel/includes/kestrel6.md b/aspnetcore/fundamentals/servers/kestrel/includes/kestrel6.md index 4b64d331ebf4..9b6f6141fb2c 100644 --- a/aspnetcore/fundamentals/servers/kestrel/includes/kestrel6.md +++ b/aspnetcore/fundamentals/servers/kestrel/includes/kestrel6.md @@ -11,7 +11,7 @@ Kestrel supports the following scenarios: †HTTP/2 will be supported on macOS in a future release. -Kestrel is supported on all platforms and versions that .NET Core supports. +Kestrel is supported on all platforms and versions that .NET supports. ## Get started @@ -74,7 +74,7 @@ Kestrel supports the following scenarios: †HTTP/2 will be supported on macOS in a future release. -Kestrel is supported on all platforms and versions that .NET Core supports. +Kestrel is supported on all platforms and versions that .NET supports. [View or download sample code](https://github.com/dotnet/AspNetCore.Docs/tree/main/aspnetcore/fundamentals/servers/kestrel/samples/5.x) ([how to download](xref:index#how-to-download-a-sample)) @@ -126,7 +126,7 @@ Kestrel supports the following scenarios: †HTTP/2 will be supported on macOS in a future release. -Kestrel is supported on all platforms and versions that .NET Core supports. +Kestrel is supported on all platforms and versions that .NET supports. [View or download sample code](https://github.com/dotnet/AspNetCore.Docs/tree/main/aspnetcore/fundamentals/servers/kestrel/samples/3.x) ([how to download](xref:index#how-to-download-a-sample)) @@ -489,7 +489,7 @@ For more information on these approaches, see [Server URLs](xref:fundamentals/ho A development certificate is created: -* When the [.NET Core SDK](/dotnet/core/sdk) is installed. +* When the [.NET SDK](/dotnet/core/sdk) is installed. * The [dev-certs tool](/dotnet/core/tools/dotnet-dev-certs) is used to create a certificate. Some browsers require granting explicit permission to trust the local development certificate. diff --git a/aspnetcore/fundamentals/servers/yarp/getting-started.md b/aspnetcore/fundamentals/servers/yarp/getting-started.md index 358c0f725f83..3b34ccbb2e33 100644 --- a/aspnetcore/fundamentals/servers/yarp/getting-started.md +++ b/aspnetcore/fundamentals/servers/yarp/getting-started.md @@ -13,7 +13,7 @@ ai-usage: ai-assisted YARP is designed as a library that provides the core proxy functionality, which you can customize by adding or replacing modules. YARP is currently provided as a NuGet package and code samples. We plan on providing a project template and prebuilt executable (`.exe`) in the future. -YARP is implemented on top of .NET Core infrastructure and is usable on Windows, Linux or MacOS. Development can be done with the SDK and your favorite editor, [Microsoft Visual Studio](https://visualstudio.microsoft.com/vs/) or [Visual Studio Code](https://code.visualstudio.com/). +YARP is implemented on top of .NET infrastructure and is usable on Windows, Linux or MacOS. Develop apps with the SDK and your favorite editor, [Microsoft Visual Studio](https://visualstudio.microsoft.com/vs/) or [Visual Studio Code](https://code.visualstudio.com/). YARP 2.3.0 supports .NET 8 or later. diff --git a/aspnetcore/fundamentals/target-aspnetcore.md b/aspnetcore/fundamentals/target-aspnetcore.md index bb2ff5aff7f4..b701151f3e9d 100644 --- a/aspnetcore/fundamentals/target-aspnetcore.md +++ b/aspnetcore/fundamentals/target-aspnetcore.md @@ -15,7 +15,7 @@ This document provides guidance for using ASP.NET Core APIs in a class library. ## Determine which ASP.NET Core versions to support -ASP.NET Core adheres to the [.NET Core support policy](https://dotnet.microsoft.com/platform/support/policy/dotnet-core). Consult the support policy when determining which ASP.NET Core versions to support in a library. A library should: +ASP.NET Core adheres to the [.NET and .NET Core support policy](https://dotnet.microsoft.com/platform/support/policy/dotnet-core). Consult the support policy when determining which ASP.NET Core versions to support in a library. A library should: * Make an effort to support all ASP.NET Core versions classified as *Long-Term Support* (LTS). * Not feel obligated to support ASP.NET Core versions classified as *End of Life* (EOL). @@ -24,7 +24,7 @@ As preview releases of ASP.NET Core are made available, breaking changes are pos ## Use the ASP.NET Core shared framework -With the release of .NET Core 3.0, many ASP.NET Core assemblies are no longer published to NuGet as packages. Instead, the assemblies are included in the `Microsoft.AspNetCore.App` shared framework, which is installed with the .NET Core SDK and runtime installers. For a list of packages no longer being published, see [Remove obsolete package references](xref:migration/22-to-30#remove-obsolete-package-references). +With the release of .NET Core 3.0, many ASP.NET Core assemblies are no longer published to NuGet as packages. Instead, the assemblies are included in the `Microsoft.AspNetCore.App` shared framework, which is installed with the .NET SDK and runtime installers. For a list of packages no longer being published, see [Remove obsolete package references](xref:migration/22-to-30#remove-obsolete-package-references). As of .NET Core 3.0, projects using the `Microsoft.NET.Sdk.Web` MSBuild SDK implicitly reference the shared framework. Projects using the `Microsoft.NET.Sdk` or `Microsoft.NET.Sdk.Razor` SDK must reference ASP.NET Core to use ASP.NET Core APIs in the shared framework. diff --git a/aspnetcore/fundamentals/tools/dotnet-aspnet-codegenerator.md b/aspnetcore/fundamentals/tools/dotnet-aspnet-codegenerator.md index d17a43bba0c7..4c4a795eb474 100644 --- a/aspnetcore/fundamentals/tools/dotnet-aspnet-codegenerator.md +++ b/aspnetcore/fundamentals/tools/dotnet-aspnet-codegenerator.md @@ -25,7 +25,7 @@ dotnet tool install -g dotnet-aspnet-codegenerator [!INCLUDE[](~/includes/dotnet-tool-install-arch-options.md)] -If the tool is already installed, the following command updates the tool to the latest stable version available from the installed .NET Core SDKs: +If the tool is already installed, the following command updates the tool to the latest stable version available from the installed .NET SDKs: ```dotnetcli dotnet tool update -g dotnet-aspnet-codegenerator diff --git a/aspnetcore/fundamentals/w3c-logger/index.md b/aspnetcore/fundamentals/w3c-logger/index.md index 5ff55593343e..73903aee9149 100644 --- a/aspnetcore/fundamentals/w3c-logger/index.md +++ b/aspnetcore/fundamentals/w3c-logger/index.md @@ -1,5 +1,5 @@ --- -title: W3CLogger in .NET Core and ASP.NET Core +title: W3CLogger in .NET and ASP.NET Core author: wtgodbe description: Learn how to create server logs in the W3C standard format. monikerRange: '>= aspnetcore-6.0' diff --git a/aspnetcore/grpc/client.md b/aspnetcore/grpc/client.md index 0f6d84f77457..de5624a9d8c2 100644 --- a/aspnetcore/grpc/client.md +++ b/aspnetcore/grpc/client.md @@ -47,7 +47,7 @@ To configure a gRPC channel to use TLS, ensure the server address starts with `h > [!TIP] > gRPC supports client certificate authentication over TLS. For information on configuring client certificates with a gRPC channel, see . -To call unsecured gRPC services, ensure the server address starts with `http`. For example, `GrpcChannel.ForAddress("http://localhost:5000")` uses HTTP protocol. In .NET Core 3.1, additional configuration is required to [call insecure gRPC services with the .NET client](xref:grpc/troubleshoot#call-insecure-grpc-services-with-net-core-client). +To call unsecured gRPC services, ensure the server address starts with `http`. For example, `GrpcChannel.ForAddress("http://localhost:5000")` uses HTTP protocol. In .NET Core 3.1, additional configuration is required to [call insecure gRPC services with the .NET client](xref:grpc/troubleshoot#call-insecure-grpc-services-with-net-client). ### Client performance diff --git a/aspnetcore/grpc/diagnostics.md b/aspnetcore/grpc/diagnostics.md index c7414ccddf6a..8c1586205c9c 100644 --- a/aspnetcore/grpc/diagnostics.md +++ b/aspnetcore/grpc/diagnostics.md @@ -16,13 +16,13 @@ By [James Newton-King](https://twitter.com/jamesnk) :::moniker range=">= aspnetcore-6.0" This article provides guidance for gathering diagnostics from a gRPC app to help troubleshoot issues. Topics covered include: -* **Logging** - Structured logs written to [.NET Core logging](xref:fundamentals/logging/index). is used by app frameworks to write logs, and by users for their own logging in an app. +* **Logging** - Structured logs written to [.NET logging](xref:fundamentals/logging/index). is used by app frameworks to write logs, and by users for their own logging in an app. * **Tracing** - Events related to an operation written using `DiaganosticSource` and `Activity`. Traces from diagnostic source are commonly used to collect app telemetry by libraries such as [Application Insights](/azure/azure-monitor/app/asp-net-core) and [OpenTelemetry](https://github.com/open-telemetry/opentelemetry-dotnet). * **Metrics** - Representation of data measures over intervals of time, for example, requests per second. Metrics are emitted using `EventCounter` and can be observed using [dotnet-counters](/dotnet/core/diagnostics/dotnet-counters) command-line tool or with [Application Insights](/azure/azure-monitor/app/eventcounters). ## Logging -gRPC services and the gRPC client write logs using [.NET Core logging](xref:fundamentals/logging/index). Logs are a good place to start when debugging unexpected behavior in service and client apps. +gRPC services and the gRPC client write logs using [.NET logging](xref:fundamentals/logging/index). Logs are a good place to start when debugging unexpected behavior in service and client apps. ### gRPC services logging @@ -240,13 +240,13 @@ Specify the gRPC counters for Application Insight to collect in `Startup.cs`: :::moniker range=">= aspnetcore-3.0 < aspnetcore-6.0" This article provides guidance for gathering diagnostics from a gRPC app to help troubleshoot issues. Topics covered include: -* **Logging** - Structured logs written to [.NET Core logging](xref:fundamentals/logging/index). is used by app frameworks to write logs, and by users for their own logging in an app. +* **Logging** - Structured logs written to [.NET logging](xref:fundamentals/logging/index). is used by app frameworks to write logs, and by users for their own logging in an app. * **Tracing** - Events related to an operation written using `DiaganosticSource` and `Activity`. Traces from diagnostic source are commonly used to collect app telemetry by libraries such as [Application Insights](/azure/azure-monitor/app/asp-net-core) and [OpenTelemetry](https://github.com/open-telemetry/opentelemetry-dotnet). * **Metrics** - Representation of data measures over intervals of time, for example, requests per second. Metrics are emitted using `EventCounter` and can be observed using [dotnet-counters](/dotnet/core/diagnostics/dotnet-counters) command line tool or with [Application Insights](/azure/azure-monitor/app/eventcounters). ## Logging -gRPC services and the gRPC client write logs using [.NET Core logging](xref:fundamentals/logging/index). Logs are a good place to start when debugging unexpected behavior in service and client apps. +gRPC services and the gRPC client write logs using [.NET logging](xref:fundamentals/logging/index). Logs are a good place to start when debugging unexpected behavior in service and client apps. ### gRPC services logging diff --git a/aspnetcore/grpc/dotnet-grpc.md b/aspnetcore/grpc/dotnet-grpc.md index 049dc094ec42..d5012e9ba941 100644 --- a/aspnetcore/grpc/dotnet-grpc.md +++ b/aspnetcore/grpc/dotnet-grpc.md @@ -11,11 +11,11 @@ uid: grpc/dotnet-grpc [!INCLUDE[](~/includes/not-latest-version.md)] -`dotnet-grpc` is a .NET Core Global Tool for managing [Protobuf (`.proto`)](xref:grpc/basics#proto-file) references within a .NET gRPC project. The tool can be used to add, refresh, remove, and list Protobuf references. +`dotnet-grpc` is a .NET Global Tool for managing [Protobuf (`.proto`)](xref:grpc/basics#proto-file) references within a .NET gRPC project. The tool can be used to add, refresh, remove, and list Protobuf references. ## Installation -To install the `dotnet-grpc` [.NET Core Global Tool](/dotnet/core/tools/global-tools), run the following command: +To install the `dotnet-grpc` [.NET Global Tool](/dotnet/core/tools/global-tools), run the following command: ```dotnetcli dotnet tool install -g dotnet-grpc diff --git a/aspnetcore/grpc/security.md b/aspnetcore/grpc/security.md index a8a09436e345..d899d463cff9 100644 --- a/aspnetcore/grpc/security.md +++ b/aspnetcore/grpc/security.md @@ -14,7 +14,7 @@ uid: grpc/security By [James Newton-King](https://twitter.com/jamesnk) -This article provides information on securing gRPC with .NET Core. +This article provides information on securing gRPC with .NET. ## Transport security diff --git a/aspnetcore/grpc/supported-platforms.md b/aspnetcore/grpc/supported-platforms.md index 4ca6bc3afb87..ffcd3aa22cd7 100644 --- a/aspnetcore/grpc/supported-platforms.md +++ b/aspnetcore/grpc/supported-platforms.md @@ -36,7 +36,7 @@ Hosting gRPC services with ASP.NET Core requires .NET Core 3.x or later. > * .NET 5 or later > * .NET Core 3 -ASP.NET Core gRPC services can be hosted on all operating system that .NET Core supports. +ASP.NET Core gRPC services can be hosted on all operating system that .NET supports. :::moniker range=">= aspnetcore-8.0" diff --git a/aspnetcore/grpc/troubleshoot.md b/aspnetcore/grpc/troubleshoot.md index b8e384c4cd78..1fe3b416d3fd 100644 --- a/aspnetcore/grpc/troubleshoot.md +++ b/aspnetcore/grpc/troubleshoot.md @@ -34,7 +34,7 @@ info: Microsoft.Hosting.Lifetime[0] Hosting environment: Development ``` -The .NET Core client must use `https` in the server address to make calls with a secured connection: +The .NET client must use `https` in the server address to make calls with a secured connection: [!code-csharp[](~/grpc/troubleshoot/sample/8.0/GrpcGreeterClient/Program.cs?name=snippet_StandardHTTPS)] @@ -60,14 +60,14 @@ The [gRPC client factory](xref:grpc/clientfactory) allows calls without a truste > [!WARNING] > Untrusted certificates should only be used during app development. Production apps should always use valid certificates. -## Call insecure gRPC services with .NET Core client +## Call insecure gRPC services with .NET client The .NET gRPC client can call insecure gRPC services by specifing `http` in the server address. For example, `GrpcChannel.ForAddress("http://localhost:5000")`. There are some additional requirements to call insecure gRPC services depending on the .NET version an app is using: * .NET 5 or later requires [Grpc.Net.Client](https://www.nuget.org/packages/Grpc.Net.Client) version 2.32.0 or later. -* .NET Core 3.x requires additional configuration. The app must set the `System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport` switch to `true`. For more information see [Asp.Net Core 3.x: Call insecure gRPC services with the .NET client](xref:grpc/troubleshoot?view=aspnetcore-3.1#call-insecure-grpc-services-with-net-core-client-2): +* .NET Core 3.x requires additional configuration. The app must set the `System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport` switch to `true`. For more information see [Asp.Net Core 3.x: Call insecure gRPC services with the .NET client](xref:grpc/troubleshoot?view=aspnetcore-3.1#call-insecure-grpc-services-with-net-client-2): > [!IMPORTANT] > Insecure gRPC services must be hosted on a HTTP/2-only port. For more information, see [ASP.NET Core protocol negotiation](xref:grpc/aspnetcore#protocol-negotiation). @@ -113,7 +113,7 @@ WPF projects have a [known issue](https://github.com/dotnet/wpf/issues/810) that You can workaround this issue by: -1. Create a new .NET Core class library project. +1. Create a new .NET class library project. 2. In the new project, add references to enable [C# code generation from `.proto` files](xref:grpc/basics#generated-c-assets): * Add the following package references: * [Grpc.Tools](https://www.nuget.org/packages/Grpc.Tools/) diff --git a/aspnetcore/grpc/troubleshoot/includes/troubleshoot3-7.md b/aspnetcore/grpc/troubleshoot/includes/troubleshoot3-7.md index 15b4ca906252..ff9b88e8c6c0 100644 --- a/aspnetcore/grpc/troubleshoot/includes/troubleshoot3-7.md +++ b/aspnetcore/grpc/troubleshoot/includes/troubleshoot3-7.md @@ -20,7 +20,7 @@ info: Microsoft.Hosting.Lifetime[0] Hosting environment: Development ``` -The .NET Core client must use `https` in the server address to make calls with a secured connection: +The .NET client must use `https` in the server address to make calls with a secured connection: ```csharp static async Task Main(string[] args) @@ -75,7 +75,7 @@ builder.Services > [!WARNING] > Untrusted certificates should only be used during app development. Production apps should always use valid certificates. -## Call insecure gRPC services with .NET Core client +## Call insecure gRPC services with .NET client The .NET gRPC client can call insecure gRPC services by specifing `http` in the server address. For example, `GrpcChannel.ForAddress("http://localhost:5000")`. @@ -124,7 +124,7 @@ builder.WebHost.ConfigureKestrel(options => When an HTTP/2 endpoint is configured without TLS, the endpoint's [ListenOptions.Protocols](xref:fundamentals/servers/kestrel/endpoints#listenoptionsprotocols) must be set to `HttpProtocols.Http2`. `HttpProtocols.Http1AndHttp2` can't be used because TLS is required to negotiate HTTP/2. Without TLS, all connections to the endpoint default to HTTP/1.1, and gRPC calls fail. -The gRPC client must also be configured to not use TLS. For more information, see [Call insecure gRPC services with .NET Core client](#call-insecure-grpc-services-with-net-core-client). +The gRPC client must also be configured to not use TLS. For more information, see [Call insecure gRPC services with .NET client](#call-insecure-grpc-services-with-net-client). > [!WARNING] > HTTP/2 without TLS should only be used during app development. Production apps should always use transport security. For more information, see [Security considerations in gRPC for ASP.NET Core](xref:grpc/security#transport-security). @@ -162,7 +162,7 @@ WPF projects have a [known issue](https://github.com/dotnet/wpf/issues/810) that You can workaround this issue by: -1. Create a new .NET Core class library project. +1. Create a new .NET class library project. 2. In the new project, add references to enable [C# code generation from `.proto` files](xref:grpc/basics#generated-c-assets): * Add the following package references: * [Grpc.Tools](https://www.nuget.org/packages/Grpc.Tools/) @@ -360,7 +360,7 @@ info: Microsoft.Hosting.Lifetime[0] Hosting environment: Development ``` -The .NET Core client must use `https` in the server address to make calls with a secured connection: +The .NET client must use `https` in the server address to make calls with a secured connection: ```csharp static async Task Main(string[] args) @@ -415,7 +415,7 @@ services > [!WARNING] > Untrusted certificates should only be used during app development. Production apps should always use valid certificates. -## Call insecure gRPC services with .NET Core client +## Call insecure gRPC services with .NET client The .NET gRPC client can call insecure gRPC services by specifing `http` in the server address. For example, `GrpcChannel.ForAddress("http://localhost:5000")`. @@ -466,7 +466,7 @@ public static IHostBuilder CreateHostBuilder(string[] args) => When an HTTP/2 endpoint is configured without TLS, the endpoint's [ListenOptions.Protocols](xref:fundamentals/servers/kestrel/endpoints#listenoptionsprotocols) must be set to `HttpProtocols.Http2`. `HttpProtocols.Http1AndHttp2` can't be used because TLS is required to negotiate HTTP/2. Without TLS, all connections to the endpoint default to HTTP/1.1, and gRPC calls fail. -The gRPC client must also be configured to not use TLS. For more information, see [Call insecure gRPC services with .NET Core client](#call-insecure-grpc-services-with-net-core-client). +The gRPC client must also be configured to not use TLS. For more information, see [Call insecure gRPC services with .NET client](#call-insecure-grpc-services-with-net-client). > [!WARNING] > HTTP/2 without TLS should only be used during app development. Production apps should always use transport security. For more information, see [Security considerations in gRPC for ASP.NET Core](xref:grpc/security#transport-security). @@ -504,7 +504,7 @@ WPF projects have a [known issue](https://github.com/dotnet/wpf/issues/810) that You can workaround this issue by: -1. Create a new .NET Core class library project. +1. Create a new .NET class library project. 2. In the new project, add references to enable [C# code generation from `.proto` files](xref:grpc/basics#generated-c-assets): * Add the following package references: * [Grpc.Tools](https://www.nuget.org/packages/Grpc.Tools/) @@ -609,7 +609,7 @@ info: Microsoft.Hosting.Lifetime[0] Hosting environment: Development ``` -The .NET Core client must use `https` in the server address to make calls with a secured connection: +The .NET client must use `https` in the server address to make calls with a secured connection: ```csharp static async Task Main(string[] args) @@ -664,7 +664,7 @@ services > [!WARNING] > Untrusted certificates should only be used during app development. Production apps should always use valid certificates. -## Call insecure gRPC services with .NET Core client +## Call insecure gRPC services with .NET client The .NET gRPC client can call insecure gRPC services by specifing `http` in the server address. For example, `GrpcChannel.ForAddress("http://localhost:5000")`. @@ -715,7 +715,7 @@ public static IHostBuilder CreateHostBuilder(string[] args) => When an HTTP/2 endpoint is configured without TLS, the endpoint's [ListenOptions.Protocols](xref:fundamentals/servers/kestrel#listenoptionsprotocols) must be set to `HttpProtocols.Http2`. `HttpProtocols.Http1AndHttp2` can't be used because TLS is required to negotiate HTTP/2. Without TLS, all connections to the endpoint default to HTTP/1.1, and gRPC calls fail. -The gRPC client must also be configured to not use TLS. For more information, see [Call insecure gRPC services with .NET Core client](#call-insecure-grpc-services-with-net-core-client). +The gRPC client must also be configured to not use TLS. For more information, see [Call insecure gRPC services with .NET client](#call-insecure-grpc-services-with-net-client). > [!WARNING] > HTTP/2 without TLS should only be used during app development. Production apps should always use transport security. For more information, see [Security considerations in gRPC for ASP.NET Core](xref:grpc/security#transport-security). @@ -753,7 +753,7 @@ WPF projects have a [known issue](https://github.com/dotnet/wpf/issues/810) that You can workaround this issue by: -1. Create a new .NET Core class library project. +1. Create a new .NET class library project. 2. In the new project, add references to enable [C# code generation from `.proto` files](xref:grpc/basics#generated-c-assets): * Add the following package references: * [Grpc.Tools](https://www.nuget.org/packages/Grpc.Tools/) diff --git a/aspnetcore/grpc/why-migrate-wcf-to-dotnet-grpc.md b/aspnetcore/grpc/why-migrate-wcf-to-dotnet-grpc.md index 0e1002e9d0bf..ded822750404 100644 --- a/aspnetcore/grpc/why-migrate-wcf-to-dotnet-grpc.md +++ b/aspnetcore/grpc/why-migrate-wcf-to-dotnet-grpc.md @@ -60,15 +60,13 @@ gRPC allows clients to specify a maximum time for an RPC to finish. If the speci gRPC can use TLS and HTTP/2 to provide an end-to-end encrypted connection between the client and the server. Support for client certificate authentication further increases security and trust between client and server. -## gRPC as a migration path for WCF to .NET Core and .NET 5 - -.NET Core and .NET 5 marks a shift in the way that Microsoft delivers remote communication solutions to developers who want to deliver services across a range of platforms. .NET Core and .NET 5 support [calling WCF services](/dotnet/core/additional-tools/wcf-web-service-reference-guide), but won't offer server-side support for hosting WCF. +## gRPC as a migration path for WCF There are two recommended paths for modernizing WCF apps: * gRPC is built on modern technologies and has emerged as the most popular choice across the developer community for RPC apps. Starting with .NET Core 3.0, modern .NET platforms have excellent support for gRPC. Migrating WCF services to use gRPC helps provide the RPC features, performance, an interoperability needed in modern apps. -* [CoreWCF](https://github.com/CoreWCF/CoreWCF) is a community effort to bring support for hosting WCF services to .NET Core and .NET 5. A preview release is available and the project is working towards being production ready. CoreWCF only supports a subset of WCF's features, and .NET Framework apps that migrate to use it will need code changes and testing to be successful. CoreWCF is a good choice if an app has to maintain compatibility with existing clients that call WCF services. +* [CoreWCF](https://github.com/CoreWCF/CoreWCF) is a community effort to bring support for hosting WCF services to .NET. CoreWCF only supports a subset of WCF's features, and .NET Framework apps that migrate to use it will need code changes and testing to be successful. CoreWCF is a good choice if an app has to maintain compatibility with existing clients that call WCF services. ## Get started diff --git a/aspnetcore/host-and-deploy/azure-iis-errors-reference.md b/aspnetcore/host-and-deploy/azure-iis-errors-reference.md index 4b979f3b9dba..a65aaae780ba 100644 --- a/aspnetcore/host-and-deploy/azure-iis-errors-reference.md +++ b/aspnetcore/host-and-deploy/azure-iis-errors-reference.md @@ -42,7 +42,7 @@ The list of errors in this topic isn't exhaustive. If you encounter an error not Troubleshooting: -Non-OS files in the **C:\Windows\SysWOW64\inetsrv** directory aren't preserved during an OS upgrade. If the ASP.NET Core Module is installed prior to an OS upgrade and then any app pool is run in 32-bit mode after an OS upgrade, this issue is encountered. After an OS upgrade, repair the ASP.NET Core Module. See [Install the .NET Core Hosting bundle](xref:host-and-deploy/iis/index#install-the-net-core-hosting-bundle). Select **Repair** when the installer is run. +Non-OS files in the **C:\Windows\SysWOW64\inetsrv** directory aren't preserved during an OS upgrade. If the ASP.NET Core Module is installed prior to an OS upgrade and then any app pool is run in 32-bit mode after an OS upgrade, this issue is encountered. After an OS upgrade, repair the ASP.NET Core Module. See [Install the .NET Hosting bundle](xref:host-and-deploy/iis/index#install-the-net-hosting-bundle). Select **Repair** when the installer is run. ## Missing site extension, 32-bit (x86) and 64-bit (x64) site extensions installed, or wrong process bitness set @@ -155,11 +155,11 @@ Troubleshooting: * Confirm that the proper role is enabled. See [IIS Configuration](xref:host-and-deploy/iis/index#iis-configuration). -* Open **Programs & Features** or **Apps & features** and confirm that **Windows Server Hosting** is installed. If **Windows Server Hosting** isn't present in the list of installed programs, download and install the .NET Core Hosting Bundle. +* Open **Programs & Features** or **Apps & features** and confirm that **Windows Server Hosting** is installed. If **Windows Server Hosting** isn't present in the list of installed programs, download and install the .NET Hosting Bundle. - [Current .NET Core Hosting Bundle installer (direct download)](https://dotnet.microsoft.com/permalink/dotnetcore-current-windows-runtime-bundle-installer) + [Current .NET Hosting Bundle installer (direct download)](https://dotnet.microsoft.com/permalink/dotnetcore-current-windows-runtime-bundle-installer) - For more information, see [Install the .NET Core Hosting Bundle](xref:host-and-deploy/iis/index#install-the-net-core-hosting-bundle). + For more information, see [Install the .NET Hosting Bundle](xref:host-and-deploy/iis/index#install-the-net-hosting-bundle). * Make sure that the **Application Pool** > **Process Model** > **Identity** is set to **ApplicationPoolIdentity** or the custom identity has the correct permissions to access the app's deployment folder. @@ -191,13 +191,13 @@ Troubleshooting: * For an FDD, *dotnet.exe* might not be accessible for the user identity of the app pool. Confirm that the app pool user identity has access to the *C:\Program Files\dotnet* directory. Confirm that there are no deny rules configured for the app pool user identity on the *C:\Program Files\dotnet* and app directories. -* An FDD may have been deployed and .NET Core installed without restarting IIS. Either restart the server or restart IIS by executing **net stop was /y** followed by **net start w3svc** from a command prompt. +* An FDD may have been deployed and .NET installed without restarting IIS. Either restart the server or restart IIS by executing **net stop was /y** followed by **net start w3svc** from a command prompt. -* An FDD may have been deployed without installing the .NET Core runtime on the hosting system. If the .NET Core runtime hasn't been installed, run the **.NET Core Hosting Bundle installer** on the system. +* An FDD may have been deployed without installing the .NET runtime on the hosting system. If the .NET runtime hasn't been installed, run the **.NET Hosting Bundle installer** on the system. - [Current .NET Core Hosting Bundle installer (direct download)](https://dotnet.microsoft.com/permalink/dotnetcore-current-windows-runtime-bundle-installer) + [Current .NET Hosting Bundle installer (direct download)](https://dotnet.microsoft.com/permalink/dotnetcore-current-windows-runtime-bundle-installer) - For more information, see [Install the .NET Core Hosting Bundle](xref:host-and-deploy/iis/index#install-the-net-core-hosting-bundle). + For more information, see [Install the .NET Hosting Bundle](xref:host-and-deploy/iis/index#install-the-net-hosting-bundle). If a specific runtime is required, download the runtime from the [.NET Downloads](https://dotnet.microsoft.com/download/dotnet) page and install it on the system. Complete the installation by restarting the system or restarting IIS by executing **net stop was /y** followed by **net start w3svc** from a command prompt. @@ -217,7 +217,7 @@ Troubleshooting: * Examine the *arguments* attribute on the `` element in *web.config* to confirm that it's either (a) `.\{ASSEMBLY}.dll` for a framework-dependent deployment (FDD); or (b) not present, an empty string (`arguments=""`), or a list of the app's arguments (`arguments="{ARGUMENT_1}, {ARGUMENT_2}, ... {ARGUMENT_X}"`) for a self-contained deployment (SCD). -## Missing .NET Core shared framework +## Missing .NET shared framework * **Browser:** HTTP Error 500.0 - ANCM In-Process Handler Load Failure diff --git a/aspnetcore/host-and-deploy/directory-structure.md b/aspnetcore/host-and-deploy/directory-structure.md index 708231dbc63b..9711344a0868 100644 --- a/aspnetcore/host-and-deploy/directory-structure.md +++ b/aspnetcore/host-and-deploy/directory-structure.md @@ -36,9 +36,9 @@ The *wwwroot* directory, if present, only contains static assets. ## Additional resources * [dotnet publish](/dotnet/core/tools/dotnet-publish) -* [.NET Core application deployment](/dotnet/core/deploying/) +* [.NET application deployment](/dotnet/core/deploying/) * [Target frameworks](/dotnet/standard/frameworks) -* [.NET Core RID Catalog](/dotnet/core/rid-catalog) +* [.NET RID Catalog](/dotnet/core/rid-catalog) :::moniker-end @@ -66,9 +66,9 @@ The *wwwroot* directory, if present, only contains static assets. ## Additional resources * [dotnet publish](/dotnet/core/tools/dotnet-publish) -* [.NET Core application deployment](/dotnet/core/deploying/) +* [.NET application deployment](/dotnet/core/deploying/) * [Target frameworks](/dotnet/standard/frameworks) -* [.NET Core RID Catalog](/dotnet/core/rid-catalog) +* [.NET RID Catalog](/dotnet/core/rid-catalog) :::moniker-end @@ -119,8 +119,8 @@ The deployment directory requires Read/Execute permissions. The *Logs* directory ## Additional resources * [dotnet publish](/dotnet/core/tools/dotnet-publish) -* [.NET Core application deployment](/dotnet/core/deploying/) +* [.NET application deployment](/dotnet/core/deploying/) * [Target frameworks](/dotnet/standard/frameworks) -* [.NET Core RID Catalog](/dotnet/core/rid-catalog) +* [.NET RID Catalog](/dotnet/core/rid-catalog) :::moniker-end diff --git a/aspnetcore/host-and-deploy/docker/index.md b/aspnetcore/host-and-deploy/docker/index.md index 903191844f8e..f0722cadc92c 100644 --- a/aspnetcore/host-and-deploy/docker/index.md +++ b/aspnetcore/host-and-deploy/docker/index.md @@ -32,7 +32,7 @@ Learn how to build and dockerize an ASP.NET Core app. Explore Docker images main Samples and guidance that demonstrate how to use .NET and Docker for development, testing and production. [Visual Studio Container Tools](xref:host-and-deploy/docker/visual-studio-tools-for-docker) -Discover how Visual Studio supports building, debugging, and running ASP.NET Core apps targeting either .NET Framework or .NET Core on Docker for Windows. Both Windows and Linux containers are supported. +Discover how Visual Studio supports building, debugging, and running ASP.NET Core apps on Docker for Windows. Both Windows and Linux containers are supported. [Publish to Azure Container Registry](/azure/vs-azure-tools-docker-hosting-web-apps-in-docker) Find out how to use the Visual Studio Container Tools extension to deploy an ASP.NET Core app to a Docker host on Azure using PowerShell. diff --git a/aspnetcore/host-and-deploy/docker/visual-studio-tools-for-docker.md b/aspnetcore/host-and-deploy/docker/visual-studio-tools-for-docker.md index c10d0e6a8412..4bacabcd91cd 100644 --- a/aspnetcore/host-and-deploy/docker/visual-studio-tools-for-docker.md +++ b/aspnetcore/host-and-deploy/docker/visual-studio-tools-for-docker.md @@ -11,7 +11,7 @@ uid: host-and-deploy/docker/visual-studio-tools-for-docker [!INCLUDE[](~/includes/not-latest-version.md)] -Visual Studio 2017 or later versions support building, debugging, and running containerized ASP.NET Core apps targeting .NET Core. Both Windows and Linux containers are supported. +Visual Studio 2017 or later versions support building, debugging, and running containerized ASP.NET Core apps. Both Windows and Linux containers are supported. [View or download sample code](https://github.com/dotnet/AspNetCore.Docs/tree/main/aspnetcore/host-and-deploy/docker/visual-studio-tools-for-docker/samples) ([how to download](xref:index#how-to-download-a-sample)) @@ -33,8 +33,6 @@ For Docker installation, first review the information at [Docker for Windows: Wh ## Add a project to a Docker container -To containerize an ASP.NET Core project, the project must target .NET Core. Both Linux and Windows containers are supported. - When adding Docker support to a project, choose either a Windows or a Linux container. The Docker host must be running the same container type. To change the container type in the running Docker instance, right-click the System Tray's Docker icon and choose **Switch to Windows containers...** or **Switch to Linux containers...**. ### New app @@ -43,11 +41,11 @@ When creating a new app with the **ASP.NET Core Web Application** project templa ![Enable Docker Support checkbox](visual-studio-tools-for-docker/_static/enable-docker-support-check-box.png) -If the target framework is .NET Core, the **OS** drop-down allows for the selection of a container type. +The **OS** drop-down allows for the selection of a container type. ### Existing app -For ASP.NET Core projects targeting .NET Core, there are two options for adding Docker support via the tooling. Open the project in Visual Studio, and choose one of the following options: +There are two options for adding Docker support to an existing project via the tooling. Open the project in Visual Studio, and choose one of the following options: * Select **Docker Support** from the **Project** menu. * Right-click the project in **Solution Explorer** and select **Add** > **Docker Support**. @@ -139,7 +137,7 @@ Select **Docker** from the debug drop-down in the toolbar, and start debugging t :::moniker range=">= aspnetcore-2.1" -* The *2.1-aspnetcore-runtime* tag of the *microsoft/dotnet* runtime image is acquired (if not already in the cache). The image installs the ASP.NET Core and .NET Core runtimes and associated libraries. It's optimized for running ASP.NET Core apps in production. +* The *2.1-aspnetcore-runtime* tag of the *microsoft/dotnet* runtime image is acquired (if not already in the cache). The image installs the ASP.NET Core and .NET runtimes and associated libraries. It's optimized for running ASP.NET Core apps in production. * The `ASPNETCORE_ENVIRONMENT` environment variable is set to `Development` within the container. * Two dynamically assigned ports are exposed: one for HTTP and one for HTTPS. The port assigned to localhost can be queried with the `docker ps` command. * The app is copied to the container. diff --git a/aspnetcore/host-and-deploy/iis/advanced.md b/aspnetcore/host-and-deploy/iis/advanced.md index 0881be8d6c00..f831b8b8eb52 100644 --- a/aspnetcore/host-and-deploy/iis/advanced.md +++ b/aspnetcore/host-and-deploy/iis/advanced.md @@ -205,7 +205,7 @@ If a static asset's `src` attribute is set to an absolute path (for example, `sr To host an ASP.NET Core app as a sub-app under another ASP.NET Core app: -1. Establish an app pool for the sub-app. Set the **.NET CLR Version** to **No Managed Code** because the Core Common Language Runtime (CoreCLR) for .NET Core is booted to host the app in the worker process, not the desktop CLR (.NET CLR). +1. Establish an app pool for the sub-app. Set the **.NET CLR Version** to **No Managed Code** because the Core Common Language Runtime (CoreCLR) for .NET is booted to host the app in the worker process, not the desktop CLR (.NET CLR). 1. Add the root site in IIS Manager with the sub-app in a folder under the root site. @@ -436,7 +436,7 @@ When deploying apps to servers with [Web Deploy](/iis/install/installing-publish ![Set No Managed Code for the .NET CLR version.](index/_static/edit-apppool-ws2016.png) - ASP.NET Core runs in a separate process and manages the runtime. ASP.NET Core doesn't rely on loading the desktop CLR (.NET CLR). The Core Common Language Runtime (CoreCLR) for .NET Core is booted to host the app in the worker process. Setting the **.NET CLR version** to **No Managed Code** is optional but recommended. + ASP.NET Core runs in a separate process and manages the runtime. ASP.NET Core doesn't rely on loading the desktop CLR (.NET CLR). The Core Common Language Runtime (CoreCLR) for .NET is booted to host the app in the worker process. Setting the **.NET CLR version** to **No Managed Code** is optional but recommended. * For a 32-bit (x86) [self-contained deployment](/dotnet/core/deploying/#self-contained-deployments-scd) published with a 32-bit SDK that uses the in-process hosting model, enable the Application Pool for 32-bit. In IIS Manager, navigate to **Application Pools** in the **Connections** sidebar. Select the app's Application Pool. In the **Actions** sidebar, select **Advanced Settings**. Set **Enable 32-Bit Applications** to `True`. diff --git a/aspnetcore/host-and-deploy/iis/hosting-bundle.md b/aspnetcore/host-and-deploy/iis/hosting-bundle.md index 30c9471521ab..a0867841a94a 100644 --- a/aspnetcore/host-and-deploy/iis/hosting-bundle.md +++ b/aspnetcore/host-and-deploy/iis/hosting-bundle.md @@ -1,25 +1,25 @@ --- title: Hosting Bundle author: rick-anderson -description: Learn how to configure the .NET Core Hosting Bundle. +description: Learn how to configure the .NET Hosting Bundle. monikerRange: '>= aspnetcore-5.0' ms.author: riande ms.custom: mvc ms.date: 02/07/2020 uid: host-and-deploy/iis/hosting-bundle --- -# The .NET Core Hosting Bundle +# The .NET Hosting Bundle [!INCLUDE[](~/includes/not-latest-version.md)] -The .NET Core Hosting bundle is an installer for the .NET Core Runtime and the [ASP.NET Core Module](xref:host-and-deploy/aspnet-core-module). The bundle allows ASP.NET Core apps to run with IIS. +The .NET Hosting bundle is an installer for the .NET Runtime and the [ASP.NET Core Module](xref:host-and-deploy/aspnet-core-module). The bundle allows ASP.NET Core apps to run with IIS. -## Install the .NET Core Hosting Bundle +## Install the .NET Hosting Bundle > [!IMPORTANT] > If the Hosting Bundle is installed before IIS, the bundle installation must be repaired. Run the Hosting Bundle installer again after installing IIS. > -> If the Hosting Bundle is installed after installing the 64-bit (x64) version of .NET Core, SDKs might appear to be missing ([No .NET Core SDKs were detected](xref:test/troubleshoot#no-net-core-sdks-were-detected)). To resolve the problem, see . +> If the Hosting Bundle is installed after installing the 64-bit (x64) version of .NET, SDKs might appear to be missing ([No .NET SDKs were detected](xref:test/troubleshoot#no-net-sdks-were-detected)). To resolve the problem, see . [!INCLUDE[](~/includes/announcements.md)] @@ -27,7 +27,7 @@ The .NET Core Hosting bundle is an installer for the .NET Core Runtime and the [ Download the installer using the following links: -* Current version:[.NET Core Hosting Bundle installer (direct download)](https://dotnet.microsoft.com/permalink/dotnetcore-current-windows-runtime-bundle-installer) +* Current version: [.NET Hosting Bundle installer (direct download)](https://dotnet.microsoft.com/permalink/dotnetcore-current-windows-runtime-bundle-installer) * [Previous and pre-release versions](https://dotnet.microsoft.com/en-us/download/dotnet) ## Visual C++ Redistributable Requirement @@ -41,9 +41,9 @@ On older versions of Windows, for example Windows Server 2012 R2, install the Vi To obtain an earlier version of the installer: -1. Navigate to the [Download .NET Core](https://dotnet.microsoft.com/download/dotnet-core) page. -1. Select the desired .NET Core version. -1. In the **Run apps - Runtime** column, find the row of the .NET Core runtime version desired. +1. Navigate to the [Download .NET](https://dotnet.microsoft.com/download/dotnet-core) page. +1. Select the desired .NET version. +1. In the **Run apps - Runtime** column, find the row of the .NET runtime version desired. 1. Download the installer using the **Hosting Bundle** link. > [!WARNING] @@ -56,7 +56,7 @@ To obtain an earlier version of the installer: 1. The following parameters are available when running the installer from an administrator command shell: * `OPT_NO_ANCM=1`: Skip installing the ASP.NET Core Module. - * `OPT_NO_RUNTIME=1`: Skip installing the .NET Core runtime. Used when the server only hosts [self-contained deployments (SCD)](/dotnet/core/deploying/#self-contained-deployments-scd). + * `OPT_NO_RUNTIME=1`: Skip installing the .NET runtime. Used when the server only hosts [self-contained deployments (SCD)](/dotnet/core/deploying/#self-contained-deployments-scd). * `OPT_NO_SHAREDFX=1`: Skip installing the ASP.NET Shared Framework (ASP.NET runtime). Used when the server only hosts [self-contained deployments (SCD)](/dotnet/core/deploying/#self-contained-deployments-scd). * `OPT_NO_X86=1`: Skip installing x86 runtimes. Use this parameter when you know that you won't be hosting 32-bit apps. If there's any chance that you will host both 32-bit and 64-bit apps in the future, don't use this parameter and install both runtimes. * `OPT_NO_SHARED_CONFIG_CHECK=1`: Disable the check for using an IIS Shared Configuration when the shared configuration (`applicationHost.config`) is on the same machine as the IIS installation. *Only available for ASP.NET Core 2.2 or later Hosting Bundler installers.* For more information, see . diff --git a/aspnetcore/host-and-deploy/iis/in-process-hosting.md b/aspnetcore/host-and-deploy/iis/in-process-hosting.md index ec9b27919789..35f458b05d82 100644 --- a/aspnetcore/host-and-deploy/iis/in-process-hosting.md +++ b/aspnetcore/host-and-deploy/iis/in-process-hosting.md @@ -47,7 +47,7 @@ After the IIS HTTP Server processes the request: 1. The app's response is passed back to IIS through IIS HTTP Server. 1. IIS sends the response to the client that initiated the request. -`CreateDefaultBuilder` adds an instance by calling the method to boot the [CoreCLR](/dotnet/standard/glossary#coreclr) and host the app inside of the IIS worker process (`w3wp.exe` or `iisexpress.exe`). Performance tests indicate that hosting a .NET Core app in-process delivers significantly higher request throughput compared to hosting the app out-of-process and proxying requests to [Kestrel](xref:fundamentals/servers/kestrel). +`CreateDefaultBuilder` adds an instance by calling the method to boot the [CoreCLR](/dotnet/standard/glossary#coreclr) and host the app inside of the IIS worker process (`w3wp.exe` or `iisexpress.exe`). Performance tests indicate that hosting a .NET app in-process delivers significantly higher request throughput compared to hosting the app out-of-process and proxying requests to [Kestrel](xref:fundamentals/servers/kestrel). Apps published as a single file executable can't be loaded by the in-process hosting model. @@ -135,7 +135,7 @@ After the IIS HTTP Server processes the request: 1. The app's response is passed back to IIS through IIS HTTP Server. 1. IIS sends the response to the client that initiated the request. -`CreateDefaultBuilder` adds an instance by calling the method to boot the [CoreCLR](/dotnet/standard/glossary#coreclr) and host the app inside of the IIS worker process (`w3wp.exe` or `iisexpress.exe`). Performance tests indicate that hosting a .NET Core app in-process delivers significantly higher request throughput compared to hosting the app out-of-process and proxying requests to [Kestrel](xref:fundamentals/servers/kestrel). +`CreateDefaultBuilder` adds an instance by calling the method to boot the [CoreCLR](/dotnet/standard/glossary#coreclr) and host the app inside of the IIS worker process (`w3wp.exe` or `iisexpress.exe`). Performance tests indicate that hosting a .NET app in-process delivers significantly higher request throughput compared to hosting the app out-of-process and proxying requests to [Kestrel](xref:fundamentals/servers/kestrel). Apps published as a single file executable can't be loaded by the in-process hosting model. diff --git a/aspnetcore/host-and-deploy/iis/index.md b/aspnetcore/host-and-deploy/iis/index.md index 44d87e81c4c6..8ec44c0f1c89 100644 --- a/aspnetcore/host-and-deploy/iis/index.md +++ b/aspnetcore/host-and-deploy/iis/index.md @@ -23,7 +23,7 @@ The following operating systems are supported: * Windows 7 or later * Windows Server 2012 R2 or later -Apps published for 32-bit (x86) or 64-bit (x64) deployment are supported. Deploy a 32-bit app with a 32-bit (x86) .NET Core SDK unless the app: +Apps published for 32-bit (x86) or 64-bit (x64) deployment are supported. Deploy a 32-bit app with a 32-bit (x86) .NET SDK unless the app: * Requires the larger virtual memory address space available to a 64-bit app. * Requires the larger IIS stack size. @@ -33,9 +33,9 @@ Apps published for 32-bit (x86) or 64-bit (x64) deployment are supported. Deploy Download the latest installer using the following link: -[Current .NET Core Hosting Bundle installer (direct download)](https://dotnet.microsoft.com/permalink/dotnetcore-current-windows-runtime-bundle-installer) +[Current .NET Hosting Bundle installer (direct download)](https://dotnet.microsoft.com/permalink/dotnetcore-current-windows-runtime-bundle-installer) -For more details instructions on how to install the ASP.NET Core Module, or installing different versions, see [Install the .NET Core Hosting Bundle](xref:host-and-deploy/iis/hosting-bundle). +For more details instructions on how to install the ASP.NET Core Module, or installing different versions, see [Install the .NET Hosting Bundle](xref:host-and-deploy/iis/hosting-bundle). To download previous versions of the hosting bundle, see [this GitHub issue](https://github.com/dotnet/AspNetCore.Docs/issues/28642). @@ -53,7 +53,7 @@ For configuration guidance, see . * [IIS documentation](/iis) * [Getting Started with the IIS Manager in IIS](/iis/get-started/getting-started-with-iis/getting-started-with-the-iis-manager-in-iis-7-and-iis-8) -* [.NET Core application deployment](/dotnet/core/deploying/) +* [.NET application deployment](/dotnet/core/deploying/) * * * @@ -83,7 +83,7 @@ For information on apps that must protect a subset of the app with a certificate For a tutorial experience on publishing an ASP.NET Core app to an IIS server, see . -[Install the .NET Core Hosting Bundle](#install-the-net-core-hosting-bundle) +[Install the .NET Hosting Bundle](#install-the-net-hosting-bundle) ## Supported operating systems @@ -100,7 +100,7 @@ For troubleshooting guidance, see . ## Supported platforms -Apps published for 32-bit (x86) or 64-bit (x64) deployment are supported. Deploy a 32-bit app with a 32-bit (x86) .NET Core SDK unless the app: +Apps published for 32-bit (x86) or 64-bit (x64) deployment are supported. Deploy a 32-bit app with a 32-bit (x86) .NET SDK unless the app: * Requires the larger virtual memory address space available to a 64-bit app. * Requires the larger IIS stack size. @@ -108,7 +108,7 @@ Apps published for 32-bit (x86) or 64-bit (x64) deployment are supported. Deploy Apps published for 32-bit (x86) must have 32-bit enabled for their IIS Application Pools. For more information, see the [Create the IIS site](#create-the-iis-site) section. -Use a 64-bit (x64) .NET Core SDK to publish a 64-bit app. A 64-bit runtime must be present on the host system. +Use a 64-bit (x64) .NET SDK to publish a 64-bit app. A 64-bit runtime must be present on the host system. ## Hosting models @@ -140,7 +140,7 @@ After the IIS HTTP Server processes the request: In-process hosting is opt-in for existing apps. The ASP.NET Core web templates use the in-process hosting model. -`CreateDefaultBuilder` adds an instance by calling the method to boot the [CoreCLR](/dotnet/standard/glossary#coreclr) and host the app inside of the IIS worker process (`w3wp.exe` or `iisexpress.exe`). Performance tests indicate that hosting a .NET Core app in-process delivers significantly higher request throughput compared to hosting the app out-of-process and proxying requests to [Kestrel](xref:fundamentals/servers/kestrel). +`CreateDefaultBuilder` adds an instance by calling the method to boot the [CoreCLR](/dotnet/standard/glossary#coreclr) and host the app inside of the IIS worker process (`w3wp.exe` or `iisexpress.exe`). Performance tests indicate that hosting a .NET app in-process delivers significantly higher request throughput compared to hosting the app out-of-process and proxying requests to [Kestrel](xref:fundamentals/servers/kestrel). Apps published as a single file executable can't be loaded by the in-process hosting model. @@ -309,28 +309,28 @@ Enable the **IIS Management Console** and **World Wide Web Services**. ![IIS Management Console and World Wide Web Services are selected in Windows Features.](index/_static/windows-features-win10.png) -## Install the .NET Core Hosting Bundle +## Install the .NET Hosting Bundle -Install the *.NET Core Hosting Bundle* on the hosting system. The bundle installs the .NET Core Runtime, .NET Core Library, and the [ASP.NET Core Module](xref:host-and-deploy/aspnet-core-module). The module allows ASP.NET Core apps to run behind IIS. +Install the *.NET Hosting Bundle* on the hosting system. The bundle installs the .NET Runtime, .NET Library, and the [ASP.NET Core Module](xref:host-and-deploy/aspnet-core-module). The module allows ASP.NET Core apps to run behind IIS. > [!IMPORTANT] > If the Hosting Bundle is installed before IIS, the bundle installation must be repaired. Run the Hosting Bundle installer again after installing IIS. > -> If the Hosting Bundle is installed after installing the 64-bit (x64) version of .NET Core, SDKs might appear to be missing ([No .NET Core SDKs were detected](xref:test/troubleshoot#no-net-core-sdks-were-detected)). To resolve the problem, see . +> If the Hosting Bundle is installed after installing the 64-bit (x64) version of .NET, SDKs might appear to be missing ([No .NET SDKs were detected](xref:test/troubleshoot#no-net-sdks-were-detected)). To resolve the problem, see . ### Direct download (current version) Download the installer using the following link: -[Current .NET Core Hosting Bundle installer (direct download)](https://dotnet.microsoft.com/permalink/dotnetcore-current-windows-runtime-bundle-installer) +[Current .NET Hosting Bundle installer (direct download)](https://dotnet.microsoft.com/permalink/dotnetcore-current-windows-runtime-bundle-installer) ### Earlier versions of the installer To obtain an earlier version of the installer: -1. Navigate to the [Download .NET Core](https://dotnet.microsoft.com/download/dotnet-core) page. -1. Select the desired .NET Core version. -1. In the **Run apps - Runtime** column, find the row of the .NET Core runtime version desired. +1. Navigate to the [Download .NET](https://dotnet.microsoft.com/download/dotnet-core) page. +1. Select the desired .NET version. +1. In the **Run apps - Runtime** column, find the row of the .NET runtime version desired. 1. Download the installer using the **Hosting Bundle** link. > [!WARNING] @@ -341,7 +341,7 @@ To obtain an earlier version of the installer: 1. Run the installer on the server. The following parameters are available when running the installer from an administrator command shell: * `OPT_NO_ANCM=1`: Skip installing the ASP.NET Core Module. - * `OPT_NO_RUNTIME=1`: Skip installing the .NET Core runtime. Used when the server only hosts [self-contained deployments (SCD)](/dotnet/core/deploying/#self-contained-deployments-scd). + * `OPT_NO_RUNTIME=1`: Skip installing the .NET runtime. Used when the server only hosts [self-contained deployments (SCD)](/dotnet/core/deploying/#self-contained-deployments-scd). * `OPT_NO_SHAREDFX=1`: Skip installing the ASP.NET Shared Framework (ASP.NET runtime). Used when the server only hosts [self-contained deployments (SCD)](/dotnet/core/deploying/#self-contained-deployments-scd). * `OPT_NO_X86=1`: Skip installing x86 runtimes. Use this parameter when you know that you won't be hosting 32-bit apps. If there's any chance that you will host both 32-bit and 64-bit apps in the future, don't use this parameter and install both runtimes. * `OPT_NO_SHARED_CONFIG_CHECK=1`: Disable the check for using an IIS Shared Configuration when the shared configuration (`applicationHost.config`) is on the same machine as the IIS installation. *Only available for ASP.NET Core 2.2 or later Hosting Bundler installers.* For more information, see . @@ -387,7 +387,7 @@ When deploying apps to servers with [Web Deploy](/iis/install/installing-publish ![Set No Managed Code for the .NET CLR version.](index/_static/edit-apppool-ws2016.png) - ASP.NET Core runs in a separate process and manages the runtime. ASP.NET Core doesn't rely on loading the desktop CLR (.NET CLR). The Core Common Language Runtime (CoreCLR) for .NET Core is booted to host the app in the worker process. Setting the **.NET CLR version** to **No Managed Code** is optional but recommended. + ASP.NET Core runs in a separate process and manages the runtime. ASP.NET Core doesn't rely on loading the desktop CLR (.NET CLR). The Core Common Language Runtime (CoreCLR) for .NET is booted to host the app in the worker process. Setting the **.NET CLR version** to **No Managed Code** is optional but recommended. 1. *ASP.NET Core 2.2 or later*: @@ -508,7 +508,7 @@ If a static asset's `src` attribute is set to an absolute path (for example, `sr To host an ASP.NET Core app as a sub-app under another ASP.NET Core app: -1. Establish an app pool for the sub-app. Set the **.NET CLR Version** to **No Managed Code** because the Core Common Language Runtime (CoreCLR) for .NET Core is booted to host the app in the worker process, not the desktop CLR (.NET CLR). +1. Establish an app pool for the sub-app. Set the **.NET CLR Version** to **No Managed Code** because the Core Common Language Runtime (CoreCLR) for .NET is booted to host the app in the worker process, not the desktop CLR (.NET CLR). 1. Add the root site in IIS Manager with the sub-app in a folder under the root site. @@ -541,7 +541,7 @@ Configuration sections of ASP.NET apps in *web.config* aren't used by ASP.NET Co * `` * `` -ASP.NET Core apps are configured using other configuration providers. For more information, see [Configuration](xref:fundamentals/configuration/index) and [.NET Core run-time configuration settings](/dotnet/core/run-time-config/) +ASP.NET Core apps are configured using other configuration providers. For more information, see [Configuration](xref:fundamentals/configuration/index) and [.NET run-time configuration settings](/dotnet/core/run-time-config/) ## Application Pools @@ -689,7 +689,7 @@ To prevent apps hosted [out-of-process](#out-of-process-hosting-model) from timi * [IIS documentation](/iis) * [Getting Started with the IIS Manager in IIS](/iis/get-started/getting-started-with-iis/getting-started-with-the-iis-manager-in-iis-7-and-iis-8) -* [.NET Core application deployment](/dotnet/core/deploying/) +* [.NET application deployment](/dotnet/core/deploying/) * * * @@ -711,7 +711,7 @@ To prevent apps hosted [out-of-process](#out-of-process-hosting-model) from timi For a tutorial experience on publishing an ASP.NET Core app to an IIS server, see . -[Install the .NET Core Hosting Bundle](#install-the-net-core-hosting-bundle) +[Install the .NET Hosting Bundle](#install-the-net-hosting-bundle) ## Supported operating systems @@ -728,13 +728,13 @@ For troubleshooting guidance, see . ## Supported platforms -Apps published for 32-bit (x86) or 64-bit (x64) deployment are supported. Deploy a 32-bit app with a 32-bit (x86) .NET Core SDK unless the app: +Apps published for 32-bit (x86) or 64-bit (x64) deployment are supported. Deploy a 32-bit app with a 32-bit (x86) .NET SDK unless the app: * Requires the larger virtual memory address space available to a 64-bit app. * Requires the larger IIS stack size. * Has 64-bit native dependencies. -Use a 64-bit (x64) .NET Core SDK to publish a 64-bit app. A 64-bit runtime must be present on the host system. +Use a 64-bit (x64) .NET SDK to publish a 64-bit app. A 64-bit runtime must be present on the host system. ASP.NET Core ships with [Kestrel server](xref:fundamentals/servers/kestrel), a default, cross-platform HTTP server. @@ -888,20 +888,20 @@ Enable the **IIS Management Console** and **World Wide Web Services**. ![IIS Management Console and World Wide Web Services are selected in Windows Features.](index/_static/windows-features-win10.png) -## Install the .NET Core Hosting Bundle +## Install the .NET Hosting Bundle -Install the *.NET Core Hosting Bundle* on the hosting system. The bundle installs the .NET Core Runtime, .NET Core Library, and the [ASP.NET Core Module](xref:host-and-deploy/aspnet-core-module). The module allows ASP.NET Core apps to run behind IIS. +Install the *.NET Hosting Bundle* on the hosting system. The bundle installs the .NET Runtime, .NET Library, and the [ASP.NET Core Module](xref:host-and-deploy/aspnet-core-module). The module allows ASP.NET Core apps to run behind IIS. > [!IMPORTANT] > If the Hosting Bundle is installed before IIS, the bundle installation must be repaired. Run the Hosting Bundle installer again after installing IIS. > -> If the Hosting Bundle is installed after installing the 64-bit (x64) version of .NET Core, SDKs might appear to be missing ([No .NET Core SDKs were detected](xref:test/troubleshoot#no-net-core-sdks-were-detected)). To resolve the problem, see . +> If the Hosting Bundle is installed after installing the 64-bit (x64) version of .NET, SDKs might appear to be missing ([No .NET SDKs were detected](xref:test/troubleshoot#no-net-sdks-were-detected)). To resolve the problem, see . ### Download -1. Navigate to the [Download .NET Core](https://dotnet.microsoft.com/download/dotnet-core) page. -1. Select the desired .NET Core version. -1. In the **Run apps - Runtime** column, find the row of the .NET Core runtime version desired. +1. Navigate to the [Download .NET](https://dotnet.microsoft.com/download/dotnet-core) page. +1. Select the desired .NET version. +1. In the **Run apps - Runtime** column, find the row of the .NET runtime version desired. 1. Download the installer using the **Hosting Bundle** link. > [!WARNING] @@ -912,7 +912,7 @@ Install the *.NET Core Hosting Bundle* on the hosting system. The bundle install 1. Run the installer on the server. The following parameters are available when running the installer from an administrator command shell: * `OPT_NO_ANCM=1`: Skip installing the ASP.NET Core Module. - * `OPT_NO_RUNTIME=1`: Skip installing the .NET Core runtime. Used when the server only hosts [self-contained deployments (SCD)](/dotnet/core/deploying/#self-contained-deployments-scd). + * `OPT_NO_RUNTIME=1`: Skip installing the .NET runtime. Used when the server only hosts [self-contained deployments (SCD)](/dotnet/core/deploying/#self-contained-deployments-scd). * `OPT_NO_SHAREDFX=1`: Skip installing the ASP.NET Shared Framework (ASP.NET runtime). Used when the server only hosts [self-contained deployments (SCD)](/dotnet/core/deploying/#self-contained-deployments-scd). * `OPT_NO_X86=1`: Skip installing x86 runtimes. Use this parameter when you know that you won't be hosting 32-bit apps. If there's any chance that you will host both 32-bit and 64-bit apps in the future, don't use this parameter and install both runtimes. * `OPT_NO_SHARED_CONFIG_CHECK=1`: Disable the check for using an IIS Shared Configuration when the shared configuration (*applicationHost.config*) is on the same machine as the IIS installation. *Only available for ASP.NET Core 2.2 or later Hosting Bundler installers.* For more information, see . @@ -956,7 +956,7 @@ When deploying apps to servers with [Web Deploy](/iis/install/installing-publish ![Set No Managed Code for the .NET CLR version.](index/_static/edit-apppool-ws2016.png) - ASP.NET Core runs in a separate process and manages the runtime. ASP.NET Core doesn't rely on loading the desktop CLR (.NET CLR)—the Core Common Language Runtime (CoreCLR) for .NET Core is booted to host the app in the worker process. Setting the **.NET CLR version** to **No Managed Code** is optional but recommended. + ASP.NET Core runs in a separate process and manages the runtime. ASP.NET Core doesn't rely on loading the desktop CLR (.NET CLR)—the Core Common Language Runtime (CoreCLR) for .NET is booted to host the app in the worker process. Setting the **.NET CLR version** to **No Managed Code** is optional but recommended. 1. *ASP.NET Core 2.2 or later*: For a 64-bit (x64) [self-contained deployment](/dotnet/core/deploying/#self-contained-deployments-scd) that uses the [in-process hosting model](#in-process-hosting-model), disable the app pool for 32-bit (x86) processes. @@ -1109,7 +1109,7 @@ If a static asset's `src` attribute is set to an absolute path (for example, `sr To host an ASP.NET Core app as a sub-app under another ASP.NET Core app: -1. Establish an app pool for the sub-app. Set the **.NET CLR Version** to **No Managed Code** because the Core Common Language Runtime (CoreCLR) for .NET Core is booted to host the app in the worker process, not the desktop CLR (.NET CLR). +1. Establish an app pool for the sub-app. Set the **.NET CLR Version** to **No Managed Code** because the Core Common Language Runtime (CoreCLR) for .NET is booted to host the app in the worker process, not the desktop CLR (.NET CLR). 1. Add the root site in IIS Manager with the sub-app in a folder under the root site. @@ -1207,7 +1207,7 @@ For an ASP.NET Core app that targets the .NET Framework, OPTIONS requests aren't * [IIS documentation](/iis) * [Getting Started with the IIS Manager in IIS](/iis/get-started/getting-started-with-iis/getting-started-with-the-iis-manager-in-iis-7-and-iis-8) -* [.NET Core application deployment](/dotnet/core/deploying/) +* [.NET application deployment](/dotnet/core/deploying/) * * * diff --git a/aspnetcore/host-and-deploy/linux-nginx.md b/aspnetcore/host-and-deploy/linux-nginx.md index f97875738087..d0f7cc891903 100644 --- a/aspnetcore/host-and-deploy/linux-nginx.md +++ b/aspnetcore/host-and-deploy/linux-nginx.md @@ -17,7 +17,7 @@ By [Sourabh Shirhatti](https://twitter.com/sshirhatti) :::moniker range=">= aspnetcore-6.0" This guide explains setting up a production-ready ASP.NET Core environment for Ubuntu, Red Hat Enterprise (RHEL), and SUSE Linux Enterprise Server. -For information on other Linux distributions supported by ASP.NET Core, see [Prerequisites for .NET Core on Linux](/dotnet/core/linux-prerequisites). +For information on other Linux distributions supported by ASP.NET Core, see [Prerequisites for .NET on Linux](/dotnet/core/linux-prerequisites). This guide: @@ -81,7 +81,7 @@ Run [dotnet publish](/dotnet/core/tools/dotnet-publish) from the development env dotnet publish --configuration Release ``` -The app can also be published as a [self-contained deployment](/dotnet/core/deploying/#self-contained-deployments-scd) if you prefer not to maintain the .NET Core runtime on the server. +The app can also be published as a [self-contained deployment](/dotnet/core/deploying/#self-contained-deployments-scd) if you prefer not to maintain the .NET runtime on the server. Copy the ASP.NET Core app to the server using a tool that integrates into the organization's workflow (for example, `SCP`, `SFTP`). It's common to locate web apps under the `var` directory (for example, `var/www/helloapp`). @@ -545,7 +545,7 @@ After upgrading the shared framework on the server, restart the ASP.NET Core app ## Additional resources -* [Prerequisites for .NET Core on Linux](/dotnet/core/linux-prerequisites) +* [Prerequisites for .NET on Linux](/dotnet/core/linux-prerequisites) * [Nginx: Binary Releases: Official Debian/Ubuntu packages](https://www.nginx.com/resources/wiki/start/topics/tutorials/install/#official-debian-ubuntu-packages) * * diff --git a/aspnetcore/host-and-deploy/visual-studio-publish-profiles.md b/aspnetcore/host-and-deploy/visual-studio-publish-profiles.md index b179daa37539..9d4eb92b6b99 100644 --- a/aspnetcore/host-and-deploy/visual-studio-publish-profiles.md +++ b/aspnetcore/host-and-deploy/visual-studio-publish-profiles.md @@ -32,7 +32,7 @@ The `dotnet new mvc` command produces a project file containing the following ro The preceding `` element's `Sdk` attribute imports the MSBuild [properties](/visualstudio/msbuild/msbuild-properties) and [targets](/visualstudio/msbuild/msbuild-targets) from *$(MSBuildSDKsPath)\Microsoft.NET.Sdk.Web\Sdk\Sdk.props* and *$(MSBuildSDKsPath)\Microsoft.NET.Sdk.Web\Sdk\Sdk.targets*, respectively. The default location for `$(MSBuildSDKsPath)` (with Visual Studio 2022) is the *%programfiles%\Microsoft Visual Studio\2022\Preview\MSBuild\Sdks* folder. -`Microsoft.NET.Sdk.Web` ([Web SDK](xref:razor-pages/web-sdk)) depends on other SDKs, including `Microsoft.NET.Sdk` ([.NET Core SDK](/dotnet/core/project-sdk/msbuild-props)) and `Microsoft.NET.Sdk.Razor` ([Razor SDK](xref:razor-pages/sdk)). The MSBuild properties and targets associated with each dependent SDK are imported. Publish targets import the appropriate set of targets based on the publish method used. +`Microsoft.NET.Sdk.Web` ([Web SDK](xref:razor-pages/web-sdk)) depends on other SDKs, including `Microsoft.NET.Sdk` ([.NET SDK](/dotnet/core/project-sdk/msbuild-props)) and `Microsoft.NET.Sdk.Razor` ([Razor SDK](xref:razor-pages/sdk)). The MSBuild properties and targets associated with each dependent SDK are imported. Publish targets import the appropriate set of targets based on the publish method used. When MSBuild or Visual Studio loads a project, the following high-level actions occur: @@ -72,7 +72,7 @@ When an ASP.NET Core project references `Microsoft.NET.Sdk.Web` in the project f ## Basic command-line publishing -Command-line publishing works on all .NET Core-supported platforms and doesn't require Visual Studio. In the following examples, the .NET CLI's [dotnet publish](/dotnet/core/tools/dotnet-publish) command is run from the project directory (which contains the `.csproj` file). If the project folder isn't the current working directory, explicitly pass in the project file path. For example: +Command-line publishing works on all .NET-supported platforms and doesn't require Visual Studio. In the following examples, the .NET CLI's [dotnet publish](/dotnet/core/tools/dotnet-publish) command is run from the project directory (which contains the `.csproj` file). If the project folder isn't the current working directory, explicitly pass in the project file path. For example: ```dotnetcli dotnet publish C:\Webs\Web1 @@ -89,13 +89,8 @@ The `dotnet publish` command produces a variation of the following output: ```console C:\Webs\Web1>dotnet publish -Microsoft (R) Build Engine version {VERSION} for .NET Core -Copyright (C) Microsoft Corporation. All rights reserved. - - Restore completed in 36.81 ms for C:\Webs\Web1\Web1.csproj. - Web1 -> C:\Webs\Web1\bin\Debug\{TARGET FRAMEWORK MONIKER}\Web1.dll - Web1 -> C:\Webs\Web1\bin\Debug\{TARGET FRAMEWORK MONIKER}\Web1.Views.dll - Web1 -> C:\Webs\Web1\bin\Debug\{TARGET FRAMEWORK MONIKER}\publish\ +Restore complete (0.4s) + Web1 succeeded (9.2s) → bin\Release\net9.0\publish\ ``` The default publish folder format is `bin\Debug\{TARGET FRAMEWORK MONIKER}`. For example, `bin\Release\net9.0\` @@ -113,7 +108,7 @@ The `dotnet publish` command calls MSBuild, which invokes the `Publish` target. * `-p:=` * `/p:=` -For example, the following command publishes a `Release` build to a network share. The network share is specified with forward slashes (*//r8/*) and works on all .NET Core supported platforms. +For example, the following command publishes a `Release` build to a network share. The network share is specified with forward slashes (*//r8/*) and works on all .NET supported platforms. ```dotnetcli dotnet publish -c Release /p:PublishDir=//r8/release/AdminWeb @@ -330,7 +325,7 @@ Done Building Project "C:\Webs\Web1\Web1.csproj" (default targets). ## Include files -The following sections outline different approaches for file inclusion at publish time. The [General file inclusion](#general-file-inclusion) section uses the `DotNetPublishFiles` item, which is provided by a publish targets file in the [Web SDK](xref:razor-pages/web-sdk). The [Selective file inclusion](#selective-file-inclusion) section uses the `ResolvedFileToPublish` item, which is provided by a publish targets file in the [.NET Core SDK](/dotnet/core/project-sdk/msbuild-props). Because the Web SDK depends on the .NET Core SDK, either item can be used in an ASP.NET Core project. +The following sections outline different approaches for file inclusion at publish time. The [General file inclusion](#general-file-inclusion) section uses the `DotNetPublishFiles` item, which is provided by a publish targets file in the [Web SDK](xref:razor-pages/web-sdk). The [Selective file inclusion](#selective-file-inclusion) section uses the `ResolvedFileToPublish` item, which is provided by a publish targets file in the [.NET SDK](/dotnet/core/project-sdk/msbuild-props). Because the Web SDK depends on the .NET SDK, either item can be used in an ASP.NET Core project. ### General file inclusion diff --git a/aspnetcore/host-and-deploy/windows-service.md b/aspnetcore/host-and-deploy/windows-service.md index 6df2b66b8409..1a6a38bd31b1 100644 --- a/aspnetcore/host-and-deploy/windows-service.md +++ b/aspnetcore/host-and-deploy/windows-service.md @@ -25,7 +25,7 @@ An ASP.NET Core app can be hosted on Windows as a [Windows Service](/dotnet/fram The ASP.NET Core Worker Service template provides a starting point for writing long running service apps. To use the template as a basis for a Windows Service app: -1. Create a Worker Service app from the .NET Core template. +1. Create a Worker Service app from the .NET template. 1. Install the NuGet package [Microsoft.Extensions.Hosting.WindowsServices](https://www.nuget.org/packages/Microsoft.Extensions.Hosting.WindowsServices). 1. Follow the guidance in the [App configuration](#app-configuration) section to update the Worker Service app so that it can run as a Windows Service. @@ -60,7 +60,7 @@ For MVC guidance, see the articles under and ` property set to `true`. @@ -104,7 +104,7 @@ To publish for multiple RIDs: * Provide the RIDs in a semicolon-delimited list. * Use the property name [\](/dotnet/core/tools/csproj#runtimeidentifiers) (plural). -For more information, see [.NET Core RID Catalog](/dotnet/core/rid-catalog). +For more information, see [.NET RID Catalog](/dotnet/core/rid-catalog). ## Service user account @@ -280,7 +280,7 @@ Many startup errors don't produce useful information in the event logs. You can ### Clear package caches -A functioning app may fail immediately after upgrading either the .NET Core SDK on the development machine or changing package versions within the app. In some cases, incoherent packages may break an app when performing major upgrades. Most of these issues can be fixed by following these instructions: +A functioning app may fail immediately after upgrading either the .NET SDK on the development machine or changing package versions within the app. In some cases, incoherent packages may break an app when performing major upgrades. Most of these issues can be fixed by following these instructions: 1. Delete the *bin* and *obj* folders. 1. Clear the package caches by executing [dotnet nuget locals all --clear](/dotnet/core/tools/dotnet-nuget-locals) from a command shell. @@ -349,7 +349,7 @@ An ASP.NET Core app can be hosted on Windows as a [Windows Service](/dotnet/fram The ASP.NET Core Worker Service template provides a starting point for writing long running service apps. To use the template as a basis for a Windows Service app: -1. Create a Worker Service app from the .NET Core template. +1. Create a Worker Service app from the .NET template. 1. Follow the guidance in the [App configuration](#app-configuration) section to update the Worker Service app so that it can run as a Windows Service. [!INCLUDE[](~/includes/worker-template-instructions.md)] @@ -384,7 +384,7 @@ For MVC guidance, see the articles under and ` property set to `true`. @@ -428,7 +428,7 @@ To publish for multiple RIDs: * Provide the RIDs in a semicolon-delimited list. * Use the property name [\](/dotnet/core/tools/csproj#runtimeidentifiers) (plural). -For more information, see [.NET Core RID Catalog](/dotnet/core/rid-catalog). +For more information, see [.NET RID Catalog](/dotnet/core/rid-catalog). ## Service user account @@ -604,7 +604,7 @@ Many startup errors don't produce useful information in the event logs. You can ### Clear package caches -A functioning app may fail immediately after upgrading either the .NET Core SDK on the development machine or changing package versions within the app. In some cases, incoherent packages may break an app when performing major upgrades. Most of these issues can be fixed by following these instructions: +A functioning app may fail immediately after upgrading either the .NET SDK on the development machine or changing package versions within the app. In some cases, incoherent packages may break an app when performing major upgrades. Most of these issues can be fixed by following these instructions: 1. Delete the *bin* and *obj* folders. 1. Clear the package caches by executing [dotnet nuget locals all --clear](/dotnet/core/tools/dotnet-nuget-locals) from a command shell. @@ -672,7 +672,7 @@ An ASP.NET Core app can be hosted on Windows as a [Windows Service](/dotnet/fram The ASP.NET Core Worker Service template provides a starting point for writing long running service apps. To use the template as a basis for a Windows Service app: -1. Create a Worker Service app from the .NET Core template. +1. Create a Worker Service app from the .NET template. 1. Follow the guidance in the [App configuration](#app-configuration) section to update the Worker Service app so that it can run as a Windows Service. [!INCLUDE[](~/includes/worker-template-instructions.md)] @@ -708,7 +708,7 @@ For MVC guidance, see the articles under and ` property set to `true`. @@ -752,7 +752,7 @@ To publish for multiple RIDs: * Provide the RIDs in a semicolon-delimited list. * Use the property name [\](/dotnet/core/tools/csproj#runtimeidentifiers) (plural). -For more information, see [.NET Core RID Catalog](/dotnet/core/rid-catalog). +For more information, see [.NET RID Catalog](/dotnet/core/rid-catalog). ## Service user account @@ -927,7 +927,7 @@ Many startup errors don't produce useful information in the event logs. You can ### Clear package caches -A functioning app may fail immediately after upgrading either the .NET Core SDK on the development machine or changing package versions within the app. In some cases, incoherent packages may break an app when performing major upgrades. Most of these issues can be fixed by following these instructions: +A functioning app may fail immediately after upgrading either the .NET SDK on the development machine or changing package versions within the app. In some cases, incoherent packages may break an app when performing major upgrades. Most of these issues can be fixed by following these instructions: 1. Delete the *bin* and *obj* folders. 1. Clear the package caches by executing [dotnet nuget locals all --clear](/dotnet/core/tools/dotnet-nuget-locals) from a command shell. @@ -995,7 +995,7 @@ An ASP.NET Core app can be hosted on Windows as a [Windows Service](/dotnet/fram The ASP.NET Core Worker Service template provides a starting point for writing long running service apps. To use the template as a basis for a Windows Service app: -1. Create a Worker Service app from the .NET Core template. +1. Create a Worker Service app from the .NET template. 1. Follow the guidance in the [App configuration](#app-configuration) section to update the Worker Service app so that it can run as a Windows Service. [!INCLUDE[](~/includes/worker-template-instructions.md)] @@ -1031,7 +1031,7 @@ For MVC guidance, see the articles under and ` property set to `true`. @@ -1075,7 +1075,7 @@ To publish for multiple RIDs: * Provide the RIDs in a semicolon-delimited list. * Use the property name [\](/dotnet/core/tools/csproj#runtimeidentifiers) (plural). -For more information, see [.NET Core RID Catalog](/dotnet/core/rid-catalog). +For more information, see [.NET RID Catalog](/dotnet/core/rid-catalog). ## Service user account @@ -1250,7 +1250,7 @@ Many startup errors don't produce useful information in the event logs. You can ### Clear package caches -A functioning app may fail immediately after upgrading either the .NET Core SDK on the development machine or changing package versions within the app. In some cases, incoherent packages may break an app when performing major upgrades. Most of these issues can be fixed by following these instructions: +A functioning app may fail immediately after upgrading either the .NET SDK on the development machine or changing package versions within the app. In some cases, incoherent packages may break an app when performing major upgrades. Most of these issues can be fixed by following these instructions: 1. Delete the *bin* and *obj* folders. 1. Clear the package caches by executing [dotnet nuget locals all --clear](/dotnet/core/tools/dotnet-nuget-locals) from a command shell. diff --git a/aspnetcore/includes/localization/unsupported-culture-log-level.md b/aspnetcore/includes/localization/unsupported-culture-log-level.md index 9062b2a029a7..03821c8f89c9 100644 --- a/aspnetcore/includes/localization/unsupported-culture-log-level.md +++ b/aspnetcore/includes/localization/unsupported-culture-log-level.md @@ -1,2 +1,2 @@ > [!NOTE] -> Prior to ASP.NET Core 3.0 web apps write one log of type `LogLevel.Warning` per request if the requested culture is unsupported. Logging one `LogLevel.Warning` per request can make large log files with redundant information. This behavior has been changed in ASP.NET 3.0. The `RequestLocalizationMiddleware` writes a log of type `LogLevel.Debug`, which reduces the size of production logs. +> Prior to ASP.NET Core 3.0 web apps write one log of type `LogLevel.Warning` per request if the requested culture is unsupported. Logging one `LogLevel.Warning` per request can make large log files with redundant information. This behavior has been changed in ASP.NET Core 3.0. The `RequestLocalizationMiddleware` writes a log of type `LogLevel.Debug`, which reduces the size of production logs. diff --git a/aspnetcore/log-mon/metrics/metrics.md b/aspnetcore/log-mon/metrics/metrics.md index 98a7759e5a10..e6128b590604 100644 --- a/aspnetcore/log-mon/metrics/metrics.md +++ b/aspnetcore/log-mon/metrics/metrics.md @@ -55,7 +55,7 @@ Replace the contents of `Program.cs` with the following code: ## View metrics with dotnet-counters -[dotnet-counters](/dotnet/core/diagnostics/dotnet-counters) is a command-line tool that can view live metrics for .NET Core apps on demand. It doesn't require setup, making it useful for ad-hoc investigations or verifying that metric instrumentation is working. It works with both based APIs and [EventCounters](/dotnet/core/diagnostics/event-counters). +[dotnet-counters](/dotnet/core/diagnostics/dotnet-counters) is a command-line tool that can view live metrics for .NET apps on demand. It doesn't require setup, making it useful for ad-hoc investigations or verifying that metric instrumentation is working. It works with both based APIs and [EventCounters](/dotnet/core/diagnostics/event-counters). If the [dotnet-counters](/dotnet/core/diagnostics/dotnet-counters) tool isn't installed, run the following command: diff --git a/aspnetcore/migration/31-to-50.md b/aspnetcore/migration/31-to-50.md index 9734ff903c90..93c9d6124148 100644 --- a/aspnetcore/migration/31-to-50.md +++ b/aspnetcore/migration/31-to-50.md @@ -28,9 +28,9 @@ This article explains how to update an existing ASP.NET Core 3.1 project to ASP. --- -## Update .NET Core SDK version in global.json +## Update .NET SDK version in global.json -If you rely upon a [global.json](/dotnet/core/tools/global-json) file to target a specific .NET Core SDK version, update the `version` property to the .NET 5 SDK version that's installed. For example: +If you rely upon a [global.json](/dotnet/core/tools/global-json) file to target a specific .NET SDK version, update the `version` property to the .NET 5 SDK version that's installed. For example: ```diff { diff --git a/aspnetcore/migration/60-70.md b/aspnetcore/migration/60-70.md index 75d80a66469a..a6127077d619 100644 --- a/aspnetcore/migration/60-70.md +++ b/aspnetcore/migration/60-70.md @@ -26,9 +26,9 @@ This article explains how to update an existing ASP.NET Core in .NET 6 project t --- -## Update .NET Core SDK version in global.json +## Update .NET SDK version in global.json -If you rely on a [global.json](/dotnet/core/tools/global-json) file to target a specific .NET Core SDK version, update the `version` property to the .NET 7 SDK version that's installed. For example: +If you rely on a [global.json](/dotnet/core/tools/global-json) file to target a specific .NET SDK version, update the `version` property to the .NET 7 SDK version that's installed. For example: ```diff { diff --git a/aspnetcore/migration/70-80.md b/aspnetcore/migration/70-80.md index cf477857f109..0e5e9b50b92b 100644 --- a/aspnetcore/migration/70-80.md +++ b/aspnetcore/migration/70-80.md @@ -24,7 +24,7 @@ This article explains how to update an existing ASP.NET Core in .NET 7 project t ## Update the .NET SDK version in `global.json` -If you rely on a [`global.json`](/dotnet/core/tools/global-json) file to target a specific .NET Core SDK version, update the `version` property to the .NET 8 SDK version that's installed. For example: +If you rely on a [`global.json`](/dotnet/core/tools/global-json) file to target a specific .NET SDK version, update the `version` property to the .NET 8 SDK version that's installed. For example: ```diff { diff --git a/aspnetcore/migration/80-90.md b/aspnetcore/migration/80-90.md index e170189a4e9a..539f74a740f8 100644 --- a/aspnetcore/migration/80-90.md +++ b/aspnetcore/migration/80-90.md @@ -27,7 +27,7 @@ This article explains how to update an ASP.NET Core in .NET 8 to ASP.NET Core in ## Update the .NET SDK version in `global.json` -If you rely on a [`global.json`](/dotnet/core/tools/global-json) file to target a specific .NET Core SDK version, update the `version` property to the .NET 9 SDK version that's installed. For example: +If you rely on a [`global.json`](/dotnet/core/tools/global-json) file to target a specific .NET SDK version, update the `version` property to the .NET 9 SDK version that's installed. For example: ```diff { diff --git a/aspnetcore/migration/fx-to-core/index.md b/aspnetcore/migration/fx-to-core/index.md index 97ca4ba6c219..556d84de36d7 100644 --- a/aspnetcore/migration/fx-to-core/index.md +++ b/aspnetcore/migration/fx-to-core/index.md @@ -21,7 +21,7 @@ Migrating from ASP.NET Framework to ASP.NET Core involves several complex challe Production applications often have accumulated technical debt over years of development: * **System.Web dependencies** - The pervasive use of and associated types throughout a code base. -* **Outdated package dependencies** that may not have .NET Core equivalents +* **Outdated package dependencies** that may not have modern compatible equivalents * **Legacy build tools and project configurations** that aren't compatible with modern .NET * **Deprecated API usage** that needs to be replaced with modern alternatives * **Compiler warnings and code quality issues** that complicate migration @@ -43,7 +43,7 @@ Many applications have cross-cutting concerns that span multiple layers and need Supporting libraries often have complex dependency relationships that require careful upgrade ordering: * **Dependency tree complexity** - Libraries must be upgraded in postorder depth-first search ordering -* **Multi-targeting requirements** - Libraries need to support both .NET Framework and .NET Core/.NET Standard +* **Multi-targeting requirements** - Libraries need to support all framework versions targeted by the app. * **API compatibility** - Ensuring libraries work with both framework versions during the migration period * **Testing complexity** - Each library upgrade requires thorough testing to ensure compatibility diff --git a/aspnetcore/migration/fx-to-core/start.md b/aspnetcore/migration/fx-to-core/start.md index 29154dfeb421..e8f446342260 100644 --- a/aspnetcore/migration/fx-to-core/start.md +++ b/aspnetcore/migration/fx-to-core/start.md @@ -154,7 +154,6 @@ The [System.Web adapters](~/migration/fx-to-core/inc/systemweb-adapters.md) can 1. Remove reference to `System.Web` in the project file 2. Add the `Microsoft.AspNetCore.SystemWebAdapters` package 3. Enable multi-targeting and add a .NET 8 target or later, or convert the project to .NET Standard 2.0. -4. Ensure the target framework supports .NET Core. Multi-targeting can be used if .NET Standard 2.0 is not sufficient This step may require a number of projects to change depending on your solution structure and which routes you're migrating. Upgrade Assistant can help you identify which ones need to change and automate a number of steps in the process. diff --git a/aspnetcore/performance/caching/distributed.md b/aspnetcore/performance/caching/distributed.md index 5de25f2be402..71dffc0a5f76 100644 --- a/aspnetcore/performance/caching/distributed.md +++ b/aspnetcore/performance/caching/distributed.md @@ -128,9 +128,9 @@ The sample app implements interface to let developers release native memory. Even if is not called, correctly implemented classes call `Dispose` when the [finalizer](/dotnet/csharp/programming-guide/classes-and-structs/destructors) runs. diff --git a/aspnetcore/razor-pages/sdk.md b/aspnetcore/razor-pages/sdk.md index 6a10d96bf395..d3f783b491b2 100644 --- a/aspnetcore/razor-pages/sdk.md +++ b/aspnetcore/razor-pages/sdk.md @@ -96,7 +96,7 @@ Razor's language version is tightly integrated with the version of the runtime t ## Additional resources -* [Additions to the csproj format for .NET Core](/dotnet/core/tools/csproj) +* [MSBuild reference for .NET SDK projects](/dotnet/core/tools/csproj) * [Common MSBuild project items](/visualstudio/msbuild/common-msbuild-project-items) :::moniker-end @@ -190,7 +190,7 @@ Razor's language version is tightly integrated with the version of the runtime t ## Additional resources -* [Additions to the csproj format for .NET Core](/dotnet/core/tools/csproj) +* [MSBuild reference for .NET SDK projects](/dotnet/core/tools/csproj) * [Common MSBuild project items](/visualstudio/msbuild/common-msbuild-project-items) :::moniker-end @@ -307,7 +307,7 @@ Razor's language version is tightly integrated with the version of the runtime t ## Additional resources -* [Additions to the csproj format for .NET Core](/dotnet/core/tools/csproj) +* [MSBuild reference for .NET SDK projects](/dotnet/core/tools/csproj) * [Common MSBuild project items](/visualstudio/msbuild/common-msbuild-project-items) :::moniker-end diff --git a/aspnetcore/security/authentication/windowsauth.md b/aspnetcore/security/authentication/windowsauth.md index 8a336d0873b0..62d6380ad85d 100644 --- a/aspnetcore/security/authentication/windowsauth.md +++ b/aspnetcore/security/authentication/windowsauth.md @@ -104,7 +104,7 @@ Use **either** of the following approaches: [!code-xml[](windowsauth/sample_snapshot/web_2.config)] - When the project is published by the .NET Core SDK (without the `` property set to `true` in the project file), the published *web.config* file includes the `` section. For more information on the `` property, see . + When the project is published by the .NET SDK (without the `` property set to `true` in the project file), the published *web.config* file includes the `` section. For more information on the `` property, see . * **After publishing and deploying the project,** perform server-side configuration with the IIS Manager: @@ -117,7 +117,7 @@ Use **either** of the following approaches: [!code-xml[](windowsauth/sample_snapshot/web_1.config?highlight=4-5)] - The `` section added to the *web.config* file by IIS Manager is outside of the app's `` section added by the .NET Core SDK when the app is published. Because the section is added outside of the `` node, the settings are inherited by any [sub-apps](xref:host-and-deploy/iis/index#sub-applications) to the current app. To prevent inheritance, move the added `` section inside of the `` section that the .NET Core SDK provided. + The `` section added to the *web.config* file by IIS Manager is outside of the app's `` section added by the .NET SDK when the app is published. Because the section is added outside of the `` node, the settings are inherited by any [sub-apps](xref:host-and-deploy/iis/index#sub-applications) to the current app. To prevent inheritance, move the added `` section inside of the `` section that the .NET SDK provided. When IIS Manager is used to add the IIS configuration, it only affects the app's *web.config* file on the server. A subsequent deployment of the app may overwrite the settings on the server if the server's copy of *web.config* is replaced by the project's *web.config* file. Use **either** of the following approaches to manage the settings: @@ -362,7 +362,7 @@ Use **either** of the following approaches: [!code-xml[](windowsauth/sample_snapshot/web_2.config)] - When the project is published by the .NET Core SDK (without the `` property set to `true` in the project file), the published *web.config* file includes the `` section. For more information on the `` property, see . + When the project is published by the .NET SDK (without the `` property set to `true` in the project file), the published *web.config* file includes the `` section. For more information on the `` property, see . * **After publishing and deploying the project,** perform server-side configuration with the IIS Manager: @@ -375,7 +375,7 @@ Use **either** of the following approaches: [!code-xml[](windowsauth/sample_snapshot/web_1.config?highlight=4-5)] - The `` section added to the *web.config* file by IIS Manager is outside of the app's `` section added by the .NET Core SDK when the app is published. Because the section is added outside of the `` node, the settings are inherited by any [sub-apps](xref:host-and-deploy/iis/index#sub-applications) to the current app. To prevent inheritance, move the added `` section inside of the `` section that the .NET Core SDK provided. + The `` section added to the *web.config* file by IIS Manager is outside of the app's `` section added by the .NET SDK when the app is published. Because the section is added outside of the `` node, the settings are inherited by any [sub-apps](xref:host-and-deploy/iis/index#sub-applications) to the current app. To prevent inheritance, move the added `` section inside of the `` section that the .NET SDK provided. When IIS Manager is used to add the IIS configuration, it only affects the app's *web.config* file on the server. A subsequent deployment of the app may overwrite the settings on the server if the server's copy of *web.config* is replaced by the project's *web.config* file. Use **either** of the following approaches to manage the settings: diff --git a/aspnetcore/security/data-protection/configuration/machine-wide-policy.md b/aspnetcore/security/data-protection/configuration/machine-wide-policy.md index 05c80a2009d7..7a67a5ad4ebe 100644 --- a/aspnetcore/security/data-protection/configuration/machine-wide-policy.md +++ b/aspnetcore/security/data-protection/configuration/machine-wide-policy.md @@ -62,4 +62,4 @@ If EncryptionType is Managed, the system is configured to use a managed Symmetri If EncryptionType has any other value other than null or empty, the Data Protection system throws an exception at startup. > [!WARNING] -> When configuring a default policy setting that involves type names (EncryptionAlgorithmType, ValidationAlgorithmType, KeyEscrowSinks), the types must be available to the app. This means that for apps running on Desktop CLR, the assemblies that contain these types should be present in the Global Assembly Cache (GAC). For ASP.NET Core apps running on .NET Core, the packages that contain these types should be installed. +> When configuring a default policy setting that involves type names (EncryptionAlgorithmType, ValidationAlgorithmType, KeyEscrowSinks), the types must be available to the app. For ASP.NET Core apps, the packages that contain these types should be installed. diff --git a/aspnetcore/security/enforcing-ssl.md b/aspnetcore/security/enforcing-ssl.md index 05a863f161ec..f8e716f883e0 100644 --- a/aspnetcore/security/enforcing-ssl.md +++ b/aspnetcore/security/enforcing-ssl.md @@ -201,7 +201,7 @@ dotnet new webapp --no-https ## Trust the ASP.NET Core HTTPS development certificate -The .NET Core SDK includes an HTTPS development certificate. The certificate is installed as part of the first-run experience. For example, `dotnet --info` produces a variation of the following output: +The .NET SDK includes an HTTPS development certificate. The certificate is installed as part of the first-run experience. For example, `dotnet --info` produces a variation of the following output: ```cli ASP.NET Core @@ -212,7 +212,7 @@ For establishing trust on other platforms refer to the platform specific documen For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054. ``` -Installing the .NET Core SDK installs the ASP.NET Core HTTPS development certificate to the local user certificate store. The certificate has been installed, but it's not trusted. To trust the certificate, perform the one-time step to run the `dotnet dev-certs` tool: +Installing the .NET SDK installs the ASP.NET Core HTTPS development certificate to the local user certificate store. The certificate has been installed, but it's not trusted. To trust the certificate, perform the one-time step to run the `dotnet dev-certs` tool: ```dotnetcli dotnet dev-certs https --trust diff --git a/aspnetcore/security/enforcing-ssl/includes/enforcing-ssl8.md b/aspnetcore/security/enforcing-ssl/includes/enforcing-ssl8.md index 493ccf43f702..22b106d78fd6 100644 --- a/aspnetcore/security/enforcing-ssl/includes/enforcing-ssl8.md +++ b/aspnetcore/security/enforcing-ssl/includes/enforcing-ssl8.md @@ -185,7 +185,7 @@ dotnet new webapp --no-https For the Firefox browser, see the next section. -The .NET Core SDK includes an HTTPS development certificate. The certificate is installed as part of the first-run experience. For example, `dotnet --info` produces a variation of the following output: +The .NET SDK includes an HTTPS development certificate. The certificate is installed as part of the first-run experience. For example, `dotnet --info` produces a variation of the following output: ```cli ASP.NET Core @@ -196,7 +196,7 @@ For establishing trust on other platforms refer to the platform specific documen For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054. ``` -Installing the .NET Core SDK installs the ASP.NET Core HTTPS development certificate to the local user certificate store. The certificate has been installed, but it's not trusted. To trust the certificate, perform the one-time step to run the `dotnet dev-certs` tool: +Installing the .NET SDK installs the ASP.NET Core HTTPS development certificate to the local user certificate store. The certificate has been installed, but it's not trusted. To trust the certificate, perform the one-time step to run the `dotnet dev-certs` tool: ```dotnetcli dotnet dev-certs https --trust diff --git a/aspnetcore/security/ip-safelist.md b/aspnetcore/security/ip-safelist.md index abb38b5ba41b..eeb5bdb0b745 100644 --- a/aspnetcore/security/ip-safelist.md +++ b/aspnetcore/security/ip-safelist.md @@ -40,7 +40,7 @@ In the preceding example, the IPv4 addresses of `127.0.0.1` and `192.168.1.5` an ## Middleware -The `Startup.Configure` method adds the custom `AdminSafeListMiddleware` middleware type to the app's request pipeline. The safelist is retrieved with the .NET Core configuration provider and is passed as a constructor parameter. +The `Startup.Configure` method adds the custom `AdminSafeListMiddleware` middleware type to the app's request pipeline. The safelist is retrieved with the .NET configuration provider and is passed as a constructor parameter. [!code-csharp[](ip-safelist/samples/3.x/ClientIpAspNetCore/Startup.cs?name=snippet_ConfigureAddMiddleware)] diff --git a/aspnetcore/security/samesite.md b/aspnetcore/security/samesite.md index c7500e875ba7..014f0d269834 100644 --- a/aspnetcore/security/samesite.md +++ b/aspnetcore/security/samesite.md @@ -38,11 +38,11 @@ The following sample can be downloaded and tested: | Sample | Document | | ----------------- | ------------ | -| [.NET Core Razor Pages](https://github.com/blowdart/AspNetSameSiteSamples/tree/master/AspNetCore31RazorPages) | | +| [Razor Pages](https://github.com/blowdart/AspNetSameSiteSamples/tree/master/AspNetCore31RazorPages) | | -## .NET Core support for the sameSite attribute +## .NET support for the sameSite attribute -.NET Core supports the 2019 draft standard for SameSite. Developers are able to programmatically control the value of the sameSite attribute using the `HttpCookie.SameSite` property. Setting the `SameSite` property to `Strict`, `Lax`, or `None` results in those values being written on the network with the cookie. Setting to `SameSiteMode.Unspecified` indicates no sameSite should be sent with the cookie. +.NET supports the 2019 draft standard for SameSite. Developers are able to programmatically control the value of the sameSite attribute using the `HttpCookie.SameSite` property. Setting the `SameSite` property to `Strict`, `Lax`, or `None` results in those values being written on the network with the cookie. Setting to `SameSiteMode.Unspecified` indicates no sameSite should be sent with the cookie. [!code-csharp[](samesite/sample6/WebSameSite/Pages/Privacy.cshtml.cs?name=snippet)] @@ -175,7 +175,7 @@ Versions of :::no-loc text="Electron"::: include older versions of Chromium. For | Sample | Document | | ----------------- | ------------ | -| [.NET Core Razor Pages](https://github.com/blowdart/AspNetSameSiteSamples/tree/master/AspNetCore31RazorPages) | | +| [Razor Pages](https://github.com/blowdart/AspNetSameSiteSamples/tree/master/AspNetCore31RazorPages) | | :::moniker-end @@ -185,7 +185,7 @@ The following sample can be downloaded and tested: | Sample | Document | | ----------------- | ------------ | -| [.NET Core Razor Pages](https://github.com/blowdart/AspNetSameSiteSamples/tree/master/AspNetCore31RazorPages) | | +| [Razor Pages](https://github.com/blowdart/AspNetSameSiteSamples/tree/master/AspNetCore31RazorPages) | | ## .NET Core support for the sameSite attribute @@ -325,7 +325,7 @@ Versions of :::no-loc text="Electron"::: include older versions of Chromium. For | Sample | Document | | ----------------- | ------------ | -| [.NET Core Razor Pages](https://github.com/blowdart/AspNetSameSiteSamples/tree/master/AspNetCore31RazorPages) | | +| [Razor Pages](https://github.com/blowdart/AspNetSameSiteSamples/tree/master/AspNetCore31RazorPages) | | :::moniker-end @@ -335,8 +335,8 @@ The following samples can be downloaded and tested: | Sample | Document | | ----------------- | ------------ | -| [.NET Core MVC](https://github.com/blowdart/AspNetSameSiteSamples/tree/master/AspNetCore21MVC) | | -| [.NET Core Razor Pages](https://github.com/blowdart/AspNetSameSiteSamples/tree/master/AspNetCore21RazorPages) | | +| [MVC](https://github.com/blowdart/AspNetSameSiteSamples/tree/master/AspNetCore21MVC) | | +| [Razor Pages](https://github.com/blowdart/AspNetSameSiteSamples/tree/master/AspNetCore21RazorPages) | | ## December patch behavior changes @@ -460,7 +460,7 @@ Versions of :::no-loc text="Electron"::: include older versions of Chromium. For | Sample | Document | | ----------------- | ------------ | -| [.NET Core MVC](https://github.com/blowdart/AspNetSameSiteSamples/tree/master/AspNetCore21MVC) | | -| [.NET Core Razor Pages](https://github.com/blowdart/AspNetSameSiteSamples/tree/master/AspNetCore21RazorPages) | | +| [MVC](https://github.com/blowdart/AspNetSameSiteSamples/tree/master/AspNetCore21MVC) | | +| [Razor Pages](https://github.com/blowdart/AspNetSameSiteSamples/tree/master/AspNetCore21RazorPages) | | :::moniker-end diff --git a/aspnetcore/signalr/background-services.md b/aspnetcore/signalr/background-services.md index 1c4e1b56f897..3f9010a8a5e9 100644 --- a/aspnetcore/signalr/background-services.md +++ b/aspnetcore/signalr/background-services.md @@ -1,7 +1,7 @@ --- title: Host ASP.NET Core SignalR in background services author: wadepickett -description: Learn how to send messages to SignalR clients from .NET Core BackgroundService classes. +description: Learn how to send messages to SignalR clients from .NET BackgroundService classes. monikerRange: '>= aspnetcore-2.2' ms.author: wpickett ms.custom: mvc @@ -15,7 +15,7 @@ By [Dave Pringle](https://github.com/UncleDave) and [Brady Gaster](https://twitt This article provides guidance for: * Hosting SignalR Hubs using a background worker process hosted with ASP.NET Core. -* Sending messages to connected clients from within a .NET Core [BackgroundService](xref:Microsoft.Extensions.Hosting.BackgroundService). +* Sending messages to connected clients from within a .NET . :::moniker range=">= aspnetcore-6.0" diff --git a/aspnetcore/signalr/client-features.md b/aspnetcore/signalr/client-features.md index fa24a1628eae..c6ab3824d585 100644 --- a/aspnetcore/signalr/client-features.md +++ b/aspnetcore/signalr/client-features.md @@ -11,7 +11,7 @@ uid: signalr/client-features ## Versioning, support, and compatibility -The SignalR clients ship alongside the server components and are versioned to match. Any supported client can safely connect to any supported server, and any compatibility issues would be considered bugs to be fixed. SignalR clients are supported in the same support lifecycle as the rest of .NET Core. See [the .NET Core Support Policy](https://dotnet.microsoft.com/platform/support/policy/dotnet-core) for details. +The SignalR clients ship alongside the server components and are versioned to match. Any supported client can safely connect to any supported server, and any compatibility issues would be considered bugs to be fixed. SignalR clients are supported in the same support lifecycle as the rest of .NET. See the [.NET and .NET Core Support Policy](https://dotnet.microsoft.com/platform/support/policy/dotnet-core) for details. Many features require a compatible client **and** server. See below for a table showing the minimum versions for various features. @@ -21,7 +21,7 @@ The 1.x versions of SignalR map to the 2.1 and 2.2 .NET Core releases and have t | - | - | - | - | | 1.0.x | 2.1.x | Long Term Support | August 21, 2021 | | 1.1.x | 2.2.x | End Of Life | December 23, 2019 | -| 3.x or higher | *same as SignalR version* | See the [the .NET Core Support Policy](https://dotnet.microsoft.com/platform/support/policy/dotnet-core) | +| 3.x or higher | *same as SignalR version* | See the [.NET and .NET Core Support Policy](https://dotnet.microsoft.com/platform/support/policy/dotnet-core) | **NOTE:** In ASP.NET Core 3.0, the JavaScript client *moved* to the `@microsoft/signalr` npm package. diff --git a/aspnetcore/signalr/introduction.md b/aspnetcore/signalr/introduction.md index 8f18f9ff5669..142acd1a80b6 100644 --- a/aspnetcore/signalr/introduction.md +++ b/aspnetcore/signalr/introduction.md @@ -21,7 +21,7 @@ Good candidates for SignalR: * Collaborative apps. Whiteboard apps and team meeting software are examples of collaborative apps. * Apps that require notifications. Social networks, email, chat, games, travel alerts, and many other apps use notifications. -SignalR provides an API for creating server-to-client [remote procedure calls (RPC)](https://wikipedia.org/wiki/Remote_procedure_call). The RPCs invoke functions on clients from server-side .NET Core code. There are several [supported platforms](xref:signalr/supported-platforms), each with their respective client SDK. Because of this, the programming language being invoked by the RPC call varies. +SignalR provides an API for creating server-to-client [remote procedure calls (RPC)](https://wikipedia.org/wiki/Remote_procedure_call). The RPCs invoke functions on clients from server-side .NET code. There are several [supported platforms](xref:signalr/supported-platforms), each with their respective client SDK. Because of this, the programming language being invoked by the RPC call varies. Here are some features of SignalR for ASP.NET Core: diff --git a/aspnetcore/signalr/publish-to-azure-web-app.md b/aspnetcore/signalr/publish-to-azure-web-app.md index 4f299cb58f88..9e13920c455b 100644 --- a/aspnetcore/signalr/publish-to-azure-web-app.md +++ b/aspnetcore/signalr/publish-to-azure-web-app.md @@ -53,7 +53,7 @@ Visual Studio completes the following tasks: The format of the app's URL is `{APP SERVICE NAME}.azurewebsites.net`. For example, an app named `SignalRChatApp` has a URL of `https://signalrchatapp.azurewebsites.net`. -If an HTTP *502.2 - Bad Gateway* error occurs when deploying an app that targets a preview .NET Core release, see [Deploy ASP.NET Core preview release to Azure App Service](xref:host-and-deploy/azure-apps/index#deploy-aspnet-core-preview-release-to-azure-app-service) to resolve it. +If an HTTP *502.2 - Bad Gateway* error occurs when deploying an app that targets a preview .NET release, see [Deploy ASP.NET Core preview release to Azure App Service](xref:host-and-deploy/azure-apps/index#deploy-aspnet-core-preview-release-to-azure-app-service) to resolve it. ## Configure the app in Azure App Service diff --git a/aspnetcore/test/integration-tests/includes/integration-tests7.md b/aspnetcore/test/integration-tests/includes/integration-tests7.md index 853ee9150d20..4a4ee05978da 100644 --- a/aspnetcore/test/integration-tests/includes/integration-tests7.md +++ b/aspnetcore/test/integration-tests/includes/integration-tests7.md @@ -1,6 +1,6 @@ :::moniker range="> aspnetcore-5.0 <= aspnetcore-7.0" -This article assumes a basic understanding of unit tests. If unfamiliar with test concepts, see the [Unit Testing in .NET Core and .NET Standard](/dotnet/core/testing/) article and its linked content. +This article assumes a basic understanding of unit tests. If unfamiliar with test concepts, see the [Testing in .NET](/dotnet/core/testing/) article and its linked content. [View or download sample code](https://github.com/dotnet/AspNetCore.Docs.Samples/tree/main/test/integration-tests/7.x/IntegrationTestsSample) ([how to download](xref:index#how-to-download-a-sample)) diff --git a/aspnetcore/test/integration-tests/includes/integration-tests8.md b/aspnetcore/test/integration-tests/includes/integration-tests8.md index a6229a5abcdb..59f9c70dac12 100644 --- a/aspnetcore/test/integration-tests/includes/integration-tests8.md +++ b/aspnetcore/test/integration-tests/includes/integration-tests8.md @@ -1,6 +1,6 @@ :::moniker range="= aspnetcore-8.0" -This article assumes a basic understanding of unit tests. If unfamiliar with test concepts, see the [Unit Testing in .NET Core and .NET Standard](/dotnet/core/testing/) article and its linked content. +This article assumes a basic understanding of unit tests. If unfamiliar with test concepts, see the [Testing in .NET](/dotnet/core/testing/) article and its linked content. [View or download sample code](https://github.com/dotnet/AspNetCore.Docs.Samples/tree/main/test/integration-tests/8.x/IntegrationTestsSample) ([how to download](xref:index#how-to-download-a-sample)) diff --git a/aspnetcore/test/integration-tests/includes/integration-tests9.md b/aspnetcore/test/integration-tests/includes/integration-tests9.md index 6e9bb363cf29..929a41caeabb 100644 --- a/aspnetcore/test/integration-tests/includes/integration-tests9.md +++ b/aspnetcore/test/integration-tests/includes/integration-tests9.md @@ -1,6 +1,6 @@ :::moniker range="= aspnetcore-9.0" -This article assumes a basic understanding of unit tests. If unfamiliar with test concepts, see the [Unit Testing in .NET Core and .NET Standard](/dotnet/core/testing/) article and its linked content. +This article assumes a basic understanding of unit tests. If unfamiliar with test concepts, see the [Testing in .NET](/dotnet/core/testing/) article and its linked content. [View or download sample code](https://github.com/dotnet/AspNetCore.Docs.Samples/tree/main/test/integration-tests/9.x/IntegrationTestsSample) ([how to download](xref:index#how-to-download-a-sample)) diff --git a/aspnetcore/test/razor-pages-tests.md b/aspnetcore/test/razor-pages-tests.md index ed6526d2a143..6ae1841d1771 100644 --- a/aspnetcore/test/razor-pages-tests.md +++ b/aspnetcore/test/razor-pages-tests.md @@ -23,7 +23,7 @@ This topic assumes that you have a basic understanding of Razor Pages apps and u * * -* [Unit testing C# in .NET Core using dotnet test and xUnit](/dotnet/articles/core/testing/unit-testing-with-dotnet-test) +* [Testing with `dotnet test`](/dotnet/core/testing/unit-testing-with-dotnet-test) [View or download sample code](https://github.com/dotnet/AspNetCore.Docs/tree/main/aspnetcore/test/razor-pages-tests/samples) ([how to download](xref:index#how-to-download-a-sample)) @@ -182,12 +182,12 @@ Other tests in this group create page model objects that include the * [Unit Test Your Code](/visualstudio/test/unit-test-your-code) (Visual Studio) * * [xUnit.net](https://github.com/xunit/xunit) -* [Getting started with xUnit.net: Using .NET Core with the .NET SDK command line](https://xunit.net/docs/getting-started/netcore/cmdline) +* [Getting started with xUnit.net](https://xunit.net/docs/getting-started/netcore/cmdline) * [Moq](https://github.com/moq/moq4) * [Moq Quickstart](https://github.com/Moq/moq4/wiki/Quickstart) @@ -206,7 +206,7 @@ This topic assumes that you have a basic understanding of Razor Pages apps and u * * -* [Unit testing C# in .NET Core using dotnet test and xUnit](/dotnet/articles/core/testing/unit-testing-with-dotnet-test) +* [Testing with `dotnet test`](/dotnet/core/testing/unit-testing-with-dotnet-test) [View or download sample code](https://github.com/dotnet/AspNetCore.Docs/tree/main/aspnetcore/test/razor-pages-tests/samples) ([how to download](xref:index#how-to-download-a-sample)) @@ -365,12 +365,12 @@ Other tests in this group create page model objects that include the * [Unit Test Your Code](/visualstudio/test/unit-test-your-code) (Visual Studio) * * [xUnit.net](https://github.com/xunit/xunit) -* [Getting started with xUnit.net: Using .NET Core with the .NET SDK command line](https://xunit.net/docs/getting-started/netcore/cmdline) +* [Getting started with xUnit.net](https://xunit.net/docs/getting-started/netcore/cmdline) * [Moq](https://github.com/moq/moq4) * [Moq Quickstart](https://github.com/Moq/moq4/wiki/Quickstart) * [JustMockLite](https://github.com/telerik/JustMockLite): A mocking framework for .NET developers. (*Not maintained or supported by Microsoft.*) diff --git a/aspnetcore/test/troubleshoot-azure-iis.md b/aspnetcore/test/troubleshoot-azure-iis.md index df6b0d275093..d0b44be93769 100644 --- a/aspnetcore/test/troubleshoot-azure-iis.md +++ b/aspnetcore/test/troubleshoot-azure-iis.md @@ -64,7 +64,7 @@ The app starts, but an error prevents the server from fulfilling the request. This error occurs within the app's code during startup or while creating a response. The response may contain no content, or the response may appear as a *500 Internal Server Error* in the browser. The Application Event Log usually states that the app started normally. From the server's perspective, that's correct. The app did start, but it can't generate a valid response. Run the app at a command prompt on the server or enable the ASP.NET Core Module stdout log to troubleshoot the problem. -This error also may occur when the .NET Core Hosting Bundle isn't installed or is corrupted. Installing or repairing the installation of the .NET Core Hosting Bundle (for IIS) or Visual Studio (for IIS Express) may fix the problem. +This error also may occur when the .NET Hosting Bundle isn't installed or is corrupted. Installing or repairing the installation of the .NET Hosting Bundle (for IIS) or Visual Studio (for IIS Express) may fix the problem. ### 500.0 In-Process Handler Load Failure @@ -80,7 +80,7 @@ An unknown error occurred loading [ASP.NET Core Module](xref:host-and-deploy/asp The worker process fails. The app doesn't start. -The [ASP.NET Core Module](xref:host-and-deploy/aspnet-core-module) attempts to start the .NET Core CLR in-process, but it fails to start. The cause of a process startup failure can usually be determined from entries in the Application Event Log and the ASP.NET Core Module stdout log. +The [ASP.NET Core Module](xref:host-and-deploy/aspnet-core-module) attempts to start the .NET CLR in-process, but it fails to start. The cause of a process startup failure can usually be determined from entries in the Application Event Log and the ASP.NET Core Module stdout log. Common failure conditions: @@ -91,7 +91,7 @@ Common failure conditions: The worker process fails. The app doesn't start. -The [ASP.NET Core Module](xref:host-and-deploy/aspnet-core-module) attempts to start the .NET Core runtime in-process, but it fails to start. The most common cause of this startup failure is when the `Microsoft.NETCore.App` or `Microsoft.AspNetCore.App` runtime isn't installed. If the app is deployed to target ASP.NET Core 3.0 and that version doesn't exist on the machine, this error occurs. An example error message follows: +The [ASP.NET Core Module](xref:host-and-deploy/aspnet-core-module) attempts to start the .NET runtime in-process, but it fails to start. The most common cause of this startup failure is when the `Microsoft.NETCore.App` or `Microsoft.AspNetCore.App` runtime isn't installed. If the app is deployed to target ASP.NET Core 3.0 and that version doesn't exist on the machine, this error occurs. An example error message follows: ``` The specified framework 'Microsoft.NETCore.App', version '3.0.0' was not found. @@ -103,10 +103,10 @@ The specified framework 'Microsoft.NETCore.App', version '3.0.0' was not found. 3.0.0-preview6-27723-08 at [C:\Program Files\dotnet\x64\shared\Microsoft.NETCore.App] ``` -The error message lists all the installed .NET Core versions and the version requested by the app. To fix this error, either: +The error message lists all the installed .NET versions and the version requested by the app. To fix this error, either: -* Install the appropriate version of .NET Core on the machine. -* Change the app to target a version of .NET Core that's present on the machine. +* Install the appropriate version of .NET on the machine. +* Change the app to target a version of .NET that's present on the machine. * Publish the app as a [self-contained deployment](/dotnet/core/deploying/#self-contained-deployments-scd). When running in development (the `ASPNETCORE_ENVIRONMENT` environment variable is set to `Development`), the specific error is written to the HTTP response. The cause of a process startup failure is also found in the Application Event Log. @@ -146,7 +146,7 @@ To fix this error, run apps in separate IIS application pools. The out-of-process request handler, *aspnetcorev2_outofprocess.dll*, isn't next to the *aspnetcorev2.dll* file. This indicates a corrupted installation of the [ASP.NET Core Module](xref:host-and-deploy/aspnet-core-module). -To fix this error, repair the installation of the [.NET Core Hosting Bundle](xref:host-and-deploy/iis/index#install-the-net-core-hosting-bundle) (for IIS) or Visual Studio (for IIS Express). +To fix this error, repair the installation of the [.NET Hosting Bundle](xref:host-and-deploy/iis/index#install-the-net-hosting-bundle) (for IIS) or Visual Studio (for IIS Express). ### 500.37 ANCM Failed to Start Within Startup Time Limit @@ -158,7 +158,7 @@ This error can occur when starting a large number of apps on the same machine. C ANCM failed to locate the application DLL, which should be next to the executable. -This error occurs when hosting an app packaged as a [single-file executable](/dotnet/core/whats-new/dotnet-core-3-0#single-file-executables) using the in-process hosting model. The in-process model requires that the ANCM load the .NET Core app into the existing IIS process. This scenario isn't supported by the single-file deployment model. Use **one** of the following approaches in the app's project file to fix this error: +This error occurs when hosting an app packaged as a [single-file executable](/dotnet/core/whats-new/dotnet-core-3-0#single-file-executables) using the in-process hosting model. The in-process model requires that the ANCM load the .NET app into the existing IIS process. This scenario isn't supported by the single-file deployment model. Use **one** of the following approaches in the app's project file to fix this error: 1. Disable single-file publishing by setting the `PublishSingleFile` MSBuild property to `false`. 1. Switch to the out-of-process hosting model by setting the `AspNetCoreHostingModel` MSBuild property to `OutOfProcess`. @@ -570,7 +570,7 @@ A dump can be analyzed using several approaches. For more information, see [Anal ## Clear package caches -A functioning app may fail immediately after upgrading either the .NET Core SDK on the development machine or changing package versions within the app. In some cases, incoherent packages may break an app when performing major upgrades. Most of these issues can be fixed by following these instructions: +A functioning app may fail immediately after upgrading either the .NET SDK on the development machine or changing package versions within the app. In some cases, incoherent packages may break an app when performing major upgrades. Most of these issues can be fixed by following these instructions: 1. Delete the *bin* and *obj* folders. 1. Clear the package caches by executing [dotnet nuget locals all --clear](/dotnet/core/tools/dotnet-nuget-locals) from a command shell. diff --git a/aspnetcore/test/troubleshoot-azure-iis/includes/troubleshoot-azure-iis7.md b/aspnetcore/test/troubleshoot-azure-iis/includes/troubleshoot-azure-iis7.md index 648cf3df2348..645be50dd489 100644 --- a/aspnetcore/test/troubleshoot-azure-iis/includes/troubleshoot-azure-iis7.md +++ b/aspnetcore/test/troubleshoot-azure-iis/includes/troubleshoot-azure-iis7.md @@ -52,7 +52,7 @@ The app starts, but an error prevents the server from fulfilling the request. This error occurs within the app's code during startup or while creating a response. The response may contain no content, or the response may appear as a *500 Internal Server Error* in the browser. The Application Event Log usually states that the app started normally. From the server's perspective, that's correct. The app did start, but it can't generate a valid response. Run the app at a command prompt on the server or enable the ASP.NET Core Module stdout log to troubleshoot the problem. -This error also may occur when the .NET Core Hosting Bundle isn't installed or is corrupted. Installing or repairing the installation of the .NET Core Hosting Bundle (for IIS) or Visual Studio (for IIS Express) may fix the problem. +This error also may occur when the .NET Hosting Bundle isn't installed or is corrupted. Installing or repairing the installation of the .NET Hosting Bundle (for IIS) or Visual Studio (for IIS Express) may fix the problem. ### 500.0 In-Process Handler Load Failure @@ -68,7 +68,7 @@ An unknown error occurred loading [ASP.NET Core Module](xref:host-and-deploy/asp The worker process fails. The app doesn't start. -The [ASP.NET Core Module](xref:host-and-deploy/aspnet-core-module) attempts to start the .NET Core CLR in-process, but it fails to start. The cause of a process startup failure can usually be determined from entries in the Application Event Log and the ASP.NET Core Module stdout log. +The [ASP.NET Core Module](xref:host-and-deploy/aspnet-core-module) attempts to start the .NET CLR in-process, but it fails to start. The cause of a process startup failure can usually be determined from entries in the Application Event Log and the ASP.NET Core Module stdout log. Common failure conditions: @@ -79,7 +79,7 @@ Common failure conditions: The worker process fails. The app doesn't start. -The [ASP.NET Core Module](xref:host-and-deploy/aspnet-core-module) attempts to start the .NET Core runtime in-process, but it fails to start. The most common cause of this startup failure is when the `Microsoft.NETCore.App` or `Microsoft.AspNetCore.App` runtime isn't installed. If the app is deployed to target ASP.NET Core 3.0 and that version doesn't exist on the machine, this error occurs. An example error message follows: +The [ASP.NET Core Module](xref:host-and-deploy/aspnet-core-module) attempts to start the .NET runtime in-process, but it fails to start. The most common cause of this startup failure is when the `Microsoft.NETCore.App` or `Microsoft.AspNetCore.App` runtime isn't installed. If the app is deployed to target ASP.NET Core 3.0 and that version doesn't exist on the machine, this error occurs. An example error message follows: ``` The specified framework 'Microsoft.NETCore.App', version '3.0.0' was not found. @@ -91,10 +91,10 @@ The specified framework 'Microsoft.NETCore.App', version '3.0.0' was not found. 3.0.0-preview6-27723-08 at [C:\Program Files\dotnet\x64\shared\Microsoft.NETCore.App] ``` -The error message lists all the installed .NET Core versions and the version requested by the app. To fix this error, either: +The error message lists all the installed .NET versions and the version requested by the app. To fix this error, either: -* Install the appropriate version of .NET Core on the machine. -* Change the app to target a version of .NET Core that's present on the machine. +* Install the appropriate version of .NET on the machine. +* Change the app to target a version of .NET that's present on the machine. * Publish the app as a [self-contained deployment](/dotnet/core/deploying/#self-contained-deployments-scd). When running in development (the `ASPNETCORE_ENVIRONMENT` environment variable is set to `Development`), the specific error is written to the HTTP response. The cause of a process startup failure is also found in the Application Event Log. @@ -134,7 +134,7 @@ To fix this error, run apps in separate IIS application pools. The out-of-process request handler, *aspnetcorev2_outofprocess.dll*, isn't next to the *aspnetcorev2.dll* file. This indicates a corrupted installation of the [ASP.NET Core Module](xref:host-and-deploy/aspnet-core-module). -To fix this error, repair the installation of the [.NET Core Hosting Bundle](xref:host-and-deploy/iis/index#install-the-net-core-hosting-bundle) (for IIS) or Visual Studio (for IIS Express). +To fix this error, repair the installation of the [.NET Hosting Bundle](xref:host-and-deploy/iis/index#install-the-net-hosting-bundle) (for IIS) or Visual Studio (for IIS Express). ### 500.37 ANCM Failed to Start Within Startup Time Limit @@ -146,7 +146,7 @@ This error can occur when starting a large number of apps on the same machine. C ANCM failed to locate the application DLL, which should be next to the executable. -This error occurs when hosting an app packaged as a [single-file executable](/dotnet/core/whats-new/dotnet-core-3-0#single-file-executables) using the in-process hosting model. The in-process model requires that the ANCM load the .NET Core app into the existing IIS process. This scenario isn't supported by the single-file deployment model. Use **one** of the following approaches in the app's project file to fix this error: +This error occurs when hosting an app packaged as a [single-file executable](/dotnet/core/whats-new/dotnet-core-3-0#single-file-executables) using the in-process hosting model. The in-process model requires that the ANCM load the .NET app into the existing IIS process. This scenario isn't supported by the single-file deployment model. Use **one** of the following approaches in the app's project file to fix this error: 1. Disable single-file publishing by setting the `PublishSingleFile` MSBuild property to `false`. 1. Switch to the out-of-process hosting model by setting the `AspNetCoreHostingModel` MSBuild property to `OutOfProcess`. @@ -558,7 +558,7 @@ A dump can be analyzed using several approaches. For more information, see [Anal ## Clear package caches -A functioning app may fail immediately after upgrading either the .NET Core SDK on the development machine or changing package versions within the app. In some cases, incoherent packages may break an app when performing major upgrades. Most of these issues can be fixed by following these instructions: +A functioning app may fail immediately after upgrading either the .NET SDK on the development machine or changing package versions within the app. In some cases, incoherent packages may break an app when performing major upgrades. Most of these issues can be fixed by following these instructions: 1. Delete the *bin* and *obj* folders. 1. Clear the package caches by executing [dotnet nuget locals all --clear](/dotnet/core/tools/dotnet-nuget-locals) from a command shell. diff --git a/aspnetcore/tutorials/dotnet-watch.md b/aspnetcore/tutorials/dotnet-watch.md index aace8e8fca6c..1a859526cf84 100644 --- a/aspnetcore/tutorials/dotnet-watch.md +++ b/aspnetcore/tutorials/dotnet-watch.md @@ -43,7 +43,7 @@ Navigate to the product API (`http://localhost:/api/math/product?a= ## Add `dotnet watch` to a project -The `dotnet watch` file watcher tool is included with version 2.1.300 of the .NET Core SDK. The following steps are required when using an earlier version of the .NET Core SDK. +The `dotnet watch` file watcher tool is included with version 2.1.300 of the .NET SDK. The following steps are required when using an earlier version of the .NET SDK. 1. Add a `Microsoft.DotNet.Watcher.Tools` package reference to the `.csproj` file: diff --git a/aspnetcore/tutorials/grpc/grpc-start.md b/aspnetcore/tutorials/grpc/grpc-start.md index 610cd9b3392e..bd616a6129f3 100644 --- a/aspnetcore/tutorials/grpc/grpc-start.md +++ b/aspnetcore/tutorials/grpc/grpc-start.md @@ -1,5 +1,5 @@ --- -title: Create a .NET Core gRPC client and server in ASP.NET Core +title: Create a .NET gRPC client and server in ASP.NET Core author: jamesnk description: This tutorial shows how to create a gRPC Service and gRPC client on ASP.NET Core. Learn how to create a gRPC Service project, edit a proto file, and add a duplex streaming call. monikerRange: '>= aspnetcore-3.0' @@ -10,7 +10,7 @@ uid: tutorials/grpc/grpc-start # Tutorial: Create a gRPC client and server in ASP.NET Core :::moniker range=">= aspnetcore-9.0" -This tutorial shows how to create a .NET Core [gRPC](xref:grpc/index) client and an ASP.NET Core gRPC Server. At the end, you'll have a gRPC client that communicates with the gRPC Greeter service. +This tutorial shows how to create a .NET [gRPC](xref:grpc/index) client and an ASP.NET Core gRPC Server. At the end, you'll have a gRPC client that communicates with the gRPC Greeter service. In this tutorial, you: @@ -119,7 +119,7 @@ info: Microsoft.Hosting.Lifetime[0] The gRPC client project requires the following NuGet packages: -* [Grpc.Net.Client](https://www.nuget.org/packages/Grpc.Net.Client), which contains the .NET Core client. +* [Grpc.Net.Client](https://www.nuget.org/packages/Grpc.Net.Client), which contains the .NET client. * [Google.Protobuf](https://www.nuget.org/packages/Google.Protobuf/), which contains protobuf message APIs for C#. * [Grpc.Tools](https://www.nuget.org/packages/Grpc.Tools/), which contain C# tooling support for protobuf files. The tooling package isn't required at runtime, so the dependency is marked with `PrivateAssets="All"`. diff --git a/aspnetcore/tutorials/grpc/grpc-start/includes/grpc-start5.md b/aspnetcore/tutorials/grpc/grpc-start/includes/grpc-start5.md index 96761c1aa509..5c5c1bad4fed 100644 --- a/aspnetcore/tutorials/grpc/grpc-start/includes/grpc-start5.md +++ b/aspnetcore/tutorials/grpc/grpc-start/includes/grpc-start5.md @@ -1,6 +1,6 @@ :::moniker range="= aspnetcore-5.0" -This tutorial shows how to create a .NET Core [gRPC](xref:grpc/index) client and an ASP.NET Core gRPC Server. +This tutorial shows how to create a .NET [gRPC](xref:grpc/index) client and an ASP.NET Core gRPC Server. At the end, you'll have a gRPC client that communicates with the gRPC Greeter service. @@ -104,7 +104,7 @@ info: Microsoft.Hosting.Lifetime[0] # [Visual Studio](#tab/visual-studio) * Open a second instance of Visual Studio and select **Create a new project**. -* In the **Create a new project** dialog, select **Console App (.NET Core)** and select **Next**. +* In the **Create a new project** dialog, select **Console App (.NET)** and select **Next**. * In the **Project name** text box, enter **GrpcGreeterClient** and select **Create**. # [Visual Studio Code](#tab/visual-studio-code) @@ -124,7 +124,7 @@ info: Microsoft.Hosting.Lifetime[0] # [Visual Studio for Mac](#tab/visual-studio-mac) -Follow the instructions in [Building a complete .NET Core solution on macOS using Visual Studio for Mac](/dotnet/core/tutorials/using-on-mac-vs-full-solution) to create a console app with the name *GrpcGreeterClient*. +Follow the instructions in [Building a complete .NET solution on macOS using Visual Studio for Mac](/dotnet/core/tutorials/using-on-mac-vs-full-solution) to create a console app with the name *GrpcGreeterClient*. --- @@ -132,7 +132,7 @@ Follow the instructions in [Building a complete .NET Core solution on macOS usin The gRPC client project requires the following packages: -* [Grpc.Net.Client](https://www.nuget.org/packages/Grpc.Net.Client), which contains the .NET Core client. +* [Grpc.Net.Client](https://www.nuget.org/packages/Grpc.Net.Client), which contains the .NET client. * [Google.Protobuf](https://www.nuget.org/packages/Google.Protobuf/), which contains protobuf message APIs for C#. * [Grpc.Tools](https://www.nuget.org/packages/Grpc.Tools/), which contains C# tooling support for protobuf files. The tooling package isn't required at runtime, so the dependency is marked with `PrivateAssets="All"`. diff --git a/aspnetcore/tutorials/grpc/grpc-start/includes/grpc-start6.md b/aspnetcore/tutorials/grpc/grpc-start/includes/grpc-start6.md index 7a3dd24f642f..94d4b2e45fb3 100644 --- a/aspnetcore/tutorials/grpc/grpc-start/includes/grpc-start6.md +++ b/aspnetcore/tutorials/grpc/grpc-start/includes/grpc-start6.md @@ -1,5 +1,5 @@ :::moniker range="= aspnetcore-6.0" -This tutorial shows how to create a .NET Core [gRPC](xref:grpc/index) client and an ASP.NET Core gRPC Server. At the end, you'll have a gRPC client that communicates with the gRPC Greeter service. +This tutorial shows how to create a .NET [gRPC](xref:grpc/index) client and an ASP.NET Core gRPC Server. At the end, you'll have a gRPC client that communicates with the gRPC Greeter service. In this tutorial, you: @@ -118,7 +118,7 @@ info: Microsoft.Hosting.Lifetime[0] # [Visual Studio for Mac](#tab/visual-studio-mac) -Follow the instructions in [Building a complete .NET Core solution on macOS using Visual Studio for Mac](/dotnet/core/tutorials/using-on-mac-vs-full-solution) to create a console app with the name *GrpcGreeterClient*. +Follow the instructions in [Building a complete .NET solution on macOS using Visual Studio for Mac](/dotnet/core/tutorials/using-on-mac-vs-full-solution) to create a console app with the name *GrpcGreeterClient*. --- @@ -126,7 +126,7 @@ Follow the instructions in [Building a complete .NET Core solution on macOS usin The gRPC client project requires the following NuGet packages: -* [Grpc.Net.Client](https://www.nuget.org/packages/Grpc.Net.Client), which contains the .NET Core client. +* [Grpc.Net.Client](https://www.nuget.org/packages/Grpc.Net.Client), which contains the .NET client. * [Google.Protobuf](https://www.nuget.org/packages/Google.Protobuf/), which contains protobuf message APIs for C#. * [Grpc.Tools](https://www.nuget.org/packages/Grpc.Tools/), which contain C# tooling support for protobuf files. The tooling package isn't required at runtime, so the dependency is marked with `PrivateAssets="All"`. diff --git a/aspnetcore/tutorials/grpc/grpc-start/includes/grpc-start7.md b/aspnetcore/tutorials/grpc/grpc-start/includes/grpc-start7.md index 8241d50babf6..93413ac80e5d 100644 --- a/aspnetcore/tutorials/grpc/grpc-start/includes/grpc-start7.md +++ b/aspnetcore/tutorials/grpc/grpc-start/includes/grpc-start7.md @@ -1,6 +1,6 @@ :::moniker range="= aspnetcore-7.0" -This tutorial shows how to create a .NET Core [gRPC](xref:grpc/index) client and an ASP.NET Core gRPC Server. At the end, you'll have a gRPC client that communicates with the gRPC Greeter service. +This tutorial shows how to create a .NET [gRPC](xref:grpc/index) client and an ASP.NET Core gRPC Server. At the end, you'll have a gRPC client that communicates with the gRPC Greeter service. In this tutorial, you: @@ -119,7 +119,7 @@ info: Microsoft.Hosting.Lifetime[0] # [Visual Studio for Mac](#tab/visual-studio-mac) -Follow the instructions in [Building a complete .NET Core solution on macOS using Visual Studio for Mac](/dotnet/core/tutorials/using-on-mac-vs-full-solution) to create a console app with the name *GrpcGreeterClient*. +Follow the instructions in [Building a complete .NET solution on macOS using Visual Studio for Mac](/dotnet/core/tutorials/using-on-mac-vs-full-solution) to create a console app with the name *GrpcGreeterClient*. --- @@ -127,7 +127,7 @@ Follow the instructions in [Building a complete .NET Core solution on macOS usin The gRPC client project requires the following NuGet packages: -* [Grpc.Net.Client](https://www.nuget.org/packages/Grpc.Net.Client), which contains the .NET Core client. +* [Grpc.Net.Client](https://www.nuget.org/packages/Grpc.Net.Client), which contains the .NET client. * [Google.Protobuf](https://www.nuget.org/packages/Google.Protobuf/), which contains protobuf message APIs for C#. * [Grpc.Tools](https://www.nuget.org/packages/Grpc.Tools/), which contain C# tooling support for protobuf files. The tooling package isn't required at runtime, so the dependency is marked with `PrivateAssets="All"`. diff --git a/aspnetcore/tutorials/grpc/grpc-start/includes/grpc-start8.md b/aspnetcore/tutorials/grpc/grpc-start/includes/grpc-start8.md index 16b32972b346..13c362836e55 100644 --- a/aspnetcore/tutorials/grpc/grpc-start/includes/grpc-start8.md +++ b/aspnetcore/tutorials/grpc/grpc-start/includes/grpc-start8.md @@ -1,5 +1,5 @@ :::moniker range="= aspnetcore-8.0" -This tutorial shows how to create a .NET Core [gRPC](xref:grpc/index) client and an ASP.NET Core gRPC Server. At the end, you'll have a gRPC client that communicates with the gRPC Greeter service. +This tutorial shows how to create a .NET [gRPC](xref:grpc/index) client and an ASP.NET Core gRPC Server. At the end, you'll have a gRPC client that communicates with the gRPC Greeter service. In this tutorial, you: @@ -108,7 +108,7 @@ info: Microsoft.Hosting.Lifetime[0] The gRPC client project requires the following NuGet packages: -* [Grpc.Net.Client](https://www.nuget.org/packages/Grpc.Net.Client), which contains the .NET Core client. +* [Grpc.Net.Client](https://www.nuget.org/packages/Grpc.Net.Client), which contains the .NET client. * [Google.Protobuf](https://www.nuget.org/packages/Google.Protobuf/), which contains protobuf message APIs for C#. * [Grpc.Tools](https://www.nuget.org/packages/Grpc.Tools/), which contain C# tooling support for protobuf files. The tooling package isn't required at runtime, so the dependency is marked with `PrivateAssets="All"`. diff --git a/aspnetcore/tutorials/grpc/grpc-start/sample/sample6/readme.md b/aspnetcore/tutorials/grpc/grpc-start/sample/sample6/readme.md index e0ec1a55103f..f4faa2dc7a60 100644 --- a/aspnetcore/tutorials/grpc/grpc-start/sample/sample6/readme.md +++ b/aspnetcore/tutorials/grpc/grpc-start/sample/sample6/readme.md @@ -12,7 +12,7 @@ urlFragment: create-grpc-client # Create a gRPC client and server in ASP.NET Core in .NET 6 -This sample demonstrates a .NET Core [gRPC](https://grpc.io/docs/guides/) client and an ASP.NET Core gRPC Server. +This sample demonstrates a .NET [gRPC](https://grpc.io/docs/guides/) client and an ASP.NET Core gRPC Server. For a tutorial on this sample see [Tutorial: Create a gRPC client and server in ASP.NET Core](https://learn.microsoft.com/aspnet/core/tutorials/grpc/grpc-start?view=aspnetcore-6.0) diff --git a/aspnetcore/tutorials/grpc/grpc-start/sample/sample7/readme.md b/aspnetcore/tutorials/grpc/grpc-start/sample/sample7/readme.md index ee3726e742ef..2e4c0bf9424c 100644 --- a/aspnetcore/tutorials/grpc/grpc-start/sample/sample7/readme.md +++ b/aspnetcore/tutorials/grpc/grpc-start/sample/sample7/readme.md @@ -12,7 +12,7 @@ urlFragment: create-grpc-client # Create a gRPC client and server in ASP.NET Core of .NET 7 -This sample demonstrates a .NET Core [gRPC](https://grpc.io/docs/guides/) client and an ASP.NET Core gRPC Server. +This sample demonstrates a .NET [gRPC](https://grpc.io/docs/guides/) client and an ASP.NET Core gRPC Server. For a tutorial on this sample see [Tutorial: Create a gRPC client and server in ASP.NET Core](https://learn.microsoft.com/aspnet/core/tutorials/grpc/grpc-start?view=aspnetcore-7.0) diff --git a/aspnetcore/tutorials/grpc/grpc-start/sample/sample8/readme.md b/aspnetcore/tutorials/grpc/grpc-start/sample/sample8/readme.md index 6b50c3c60ddc..0957696fe2dd 100644 --- a/aspnetcore/tutorials/grpc/grpc-start/sample/sample8/readme.md +++ b/aspnetcore/tutorials/grpc/grpc-start/sample/sample8/readme.md @@ -12,7 +12,7 @@ urlFragment: create-grpc-client # Create a gRPC client and server in ASP.NET Core of .NET 8 -This sample demonstrates a .NET Core [gRPC](https://grpc.io/docs/guides/) client and an ASP.NET Core gRPC Server. +This sample demonstrates a .NET [gRPC](https://grpc.io/docs/guides/) client and an ASP.NET Core gRPC Server. For a tutorial on this sample see [Tutorial: Create a gRPC client and server in ASP.NET Core](https://learn.microsoft.com/aspnet/core/tutorials/grpc/grpc-start?view=aspnetcore-8.0) diff --git a/aspnetcore/tutorials/grpc/grpc-start/sample/sample9/readme.md b/aspnetcore/tutorials/grpc/grpc-start/sample/sample9/readme.md index 88379a8e4efc..dd8e55d95163 100644 --- a/aspnetcore/tutorials/grpc/grpc-start/sample/sample9/readme.md +++ b/aspnetcore/tutorials/grpc/grpc-start/sample/sample9/readme.md @@ -12,7 +12,7 @@ urlFragment: create-grpc-client # Create a gRPC client and server in ASP.NET Core 9 -This sample demonstrates a .NET Core [gRPC](https://grpc.io/docs/guides/) client and an ASP.NET Core gRPC Server. +This sample demonstrates a .NET [gRPC](https://grpc.io/docs/guides/) client and an ASP.NET Core gRPC Server. For a tutorial on this sample see [Tutorial: Create a gRPC client and server in ASP.NET Core](https://learn.microsoft.com/aspnet/core/tutorials/grpc/grpc-start?view=aspnetcore-9.0) diff --git a/aspnetcore/tutorials/publish-to-iis.md b/aspnetcore/tutorials/publish-to-iis.md index 25d33a93d9f4..15c45769e32b 100644 --- a/aspnetcore/tutorials/publish-to-iis.md +++ b/aspnetcore/tutorials/publish-to-iis.md @@ -15,13 +15,13 @@ This tutorial shows how to host an ASP.NET Core app on an IIS server. This tutorial covers the following subjects: > [!div class="checklist"] -> * Install the .NET Core Hosting Bundle on Windows Server. +> * Install the .NET Hosting Bundle on Windows Server. > * Create an IIS site in IIS Manager. > * Deploy an ASP.NET Core app. ## Prerequisites -* [.NET Core SDK](/dotnet/core/sdk) installed on the development machine. +* [.NET SDK](/dotnet/core/sdk) installed on the development machine. * Windows Server configured with the **Web Server (IIS)** server role. If your server isn't configured to host websites with IIS, follow the guidance in the *IIS configuration* section of the article and then return to this tutorial. > [!WARNING] @@ -33,13 +33,13 @@ This tutorial covers the following subjects: > * [Configuration of the app pool's Access Control List (ACL)](xref:host-and-deploy/iis/advanced#application-pool-identity) > * To focus on IIS deployment concepts, this tutorial deploys an app without HTTPS security configured in IIS. For more information on hosting an app enabled for HTTPS protocol, see the security topics in the [Additional resources](#additional-resources) section of this article. Further guidance for hosting ASP.NET Core apps is provided in the article. -## Install the .NET Core Hosting Bundle +## Install the .NET Hosting Bundle -Install the *.NET Core Hosting Bundle* on the IIS server. The bundle installs the .NET Core Runtime, .NET Core Library, and the [ASP.NET Core Module](xref:host-and-deploy/aspnet-core-module). The module allows ASP.NET Core apps to run behind IIS. +Install the *.NET Hosting Bundle* on the IIS server. The bundle installs the .NET Runtime, .NET Library, and the [ASP.NET Core Module](xref:host-and-deploy/aspnet-core-module). The module allows ASP.NET Core apps to run behind IIS. Download the installer using the following link: -[Current .NET Core Hosting Bundle installer (direct download)](https://dotnet.microsoft.com/permalink/dotnetcore-current-windows-runtime-bundle-installer) +[Current .NET Hosting Bundle installer (direct download)](https://dotnet.microsoft.com/permalink/dotnetcore-current-windows-runtime-bundle-installer) 1. Run the installer on the IIS server. @@ -69,7 +69,7 @@ Create any type of ASP.NET Core server-based app. ## Publish and deploy the app -*Publish an app* means to produce a compiled app that can be hosted by a server. *Deploy an app* means to move the published app to a hosting system. The publish step is handled by the [.NET Core SDK](/dotnet/core/sdk), while the deployment step can be handled by a variety of approaches. This tutorial adopts the *folder* deployment approach, where: +*Publish an app* means to produce a compiled app that can be hosted by a server. *Deploy an app* means to move the published app to a hosting system. The publish step is handled by the [.NET SDK](/dotnet/core/sdk), while the deployment step can be handled by a variety of approaches. This tutorial adopts the *folder* deployment approach, where: * The app is published to a folder. * The folder's contents are moved to the IIS site's folder (the **Physical path** to the site in IIS Manager). @@ -104,7 +104,7 @@ The app is accessible in a browser after it receives the first request. Make a r In this tutorial, you learned how to: > [!div class="checklist"] -> * Install the .NET Core Hosting Bundle on Windows Server. +> * Install the .NET Hosting Bundle on Windows Server. > * Create an IIS site in IIS Manager. > * Deploy an ASP.NET Core app. @@ -143,7 +143,7 @@ To learn more about hosting ASP.NET Core apps on IIS, see the IIS Overview artic * [IIS documentation](/iis) * [Getting Started with the IIS Manager in IIS](/iis/get-started/getting-started-with-iis/getting-started-with-the-iis-manager-in-iis-7-and-iis-8) -* [.NET Core application deployment](/dotnet/core/deploying/) +* [.NET application deployment](/dotnet/core/deploying/) * * * diff --git a/aspnetcore/web-api/advanced/analyzers.md b/aspnetcore/web-api/advanced/analyzers.md index f92c1014cd1b..480785e8a29b 100644 --- a/aspnetcore/web-api/advanced/analyzers.md +++ b/aspnetcore/web-api/advanced/analyzers.md @@ -21,7 +21,7 @@ The analyzers package notifies you of any controller action that: ## Reference the analyzer package -The analyzers are included in the .NET Core SDK. To enable the analyzer in your project, include the `IncludeOpenAPIAnalyzers` property in the project file: +The analyzers are included in the .NET SDK. To enable the analyzer in your project, include the `IncludeOpenAPIAnalyzers` property in the project file: ```xml diff --git a/aspnetcore/web-api/http-repl/index.md b/aspnetcore/web-api/http-repl/index.md index 778aca3e5153..24f76359d251 100644 --- a/aspnetcore/web-api/http-repl/index.md +++ b/aspnetcore/web-api/http-repl/index.md @@ -1,7 +1,7 @@ --- title: Test web APIs with the HttpRepl author: tdykstra -description: Learn how to use the HttpRepl .NET Core Global Tool to browse and test an ASP.NET Core web API. +description: Learn how to use the HttpRepl .NET Global Tool to browse and test an ASP.NET Core web API. monikerRange: '>= aspnetcore-3.1' ms.author: tdykstra ms.custom: mvc @@ -12,7 +12,7 @@ uid: web-api/http-repl The HTTP Read-Eval-Print Loop (REPL) is: -* A lightweight, cross-platform command-line tool that's supported everywhere .NET Core is supported. +* A lightweight, cross-platform command-line tool that's supported everywhere .NET is supported. * Used for making HTTP requests to test ASP.NET Core web APIs (and non-ASP.NET Core web APIs) and view their results. * Capable of testing web APIs hosted in any environment, including localhost and Azure App Service. @@ -40,7 +40,7 @@ To install the HttpRepl, run the following command: dotnet tool install -g Microsoft.dotnet-httprepl ``` -A [.NET Core Global Tool](/dotnet/core/tools/global-tools#install-a-global-tool) is installed from the [Microsoft.dotnet-httprepl](https://www.nuget.org/packages/Microsoft.dotnet-httprepl) NuGet package. +A [.NET Global Tool](/dotnet/core/tools/global-tools#install-a-global-tool) is installed from the [Microsoft.dotnet-httprepl](https://www.nuget.org/packages/Microsoft.dotnet-httprepl) NuGet package. [!INCLUDE[](~/includes/dotnet-tool-install-arch-options.md)] diff --git a/aspnetcore/web-api/http-repl/telemetry.md b/aspnetcore/web-api/http-repl/telemetry.md index 6209b1e2b68c..002b1c7a783a 100644 --- a/aspnetcore/web-api/http-repl/telemetry.md +++ b/aspnetcore/web-api/http-repl/telemetry.md @@ -63,5 +63,5 @@ The telemetry feature collects the following data. ## Additional resources -* [.NET Core SDK telemetry](/dotnet/core/tools/telemetry) +* [.NET SDK telemetry](/dotnet/core/tools/telemetry) * [.NET CLI telemetry data](https://dotnet.microsoft.com/platform/telemetry) From b4b3a03ff428d4c256b3fd37dc7fd74f12375a46 Mon Sep 17 00:00:00 2001 From: damienbod Date: Sat, 26 Jul 2025 16:08:50 +0200 Subject: [PATCH 09/18] Switch to list of standards like other docs (#35832) --- .../configure-jwt-bearer-authentication.md | 29 +++++++------------ 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/aspnetcore/security/authentication/configure-jwt-bearer-authentication.md b/aspnetcore/security/authentication/configure-jwt-bearer-authentication.md index a21b7eed9991..53bc748830e6 100644 --- a/aspnetcore/security/authentication/configure-jwt-bearer-authentication.md +++ b/aspnetcore/security/authentication/configure-jwt-bearer-authentication.md @@ -326,22 +326,13 @@ Refer to the following document: ## Standards -[JSON Web Token (JWT)](https://datatracker.ietf.org/doc/html/rfc7519) - -[The OAuth 2.0 Authorization Framework](https://datatracker.ietf.org/doc/html/rfc6749) - -[OAuth 2.0 Demonstrating Proof of Possession DPoP](https://datatracker.ietf.org/doc/html/rfc9449) - -[OAuth 2.0 JWT-Secured Authorization Request (JAR) RFC 9101](https://datatracker.ietf.org/doc/rfc9101/) - -[OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens](https://datatracker.ietf.org/doc/html/rfc8705) - -[OpenID Connect 1.0](https://openid.net/specs/openid-connect-core-1_0-final.html) - -[Microsoft identity platform and OAuth 2.0 On-Behalf-Of flow](/azure/active-directory/develop/v2-oauth2-on-behalf-of-flow) - -[OAuth 2.0 Token Exchange](https://datatracker.ietf.org/doc/html/rfc8693) - -[JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens](https://datatracker.ietf.org/doc/html/rfc9068) - -[HTTP Semantics RFC 9110](https://datatracker.ietf.org/doc/html/rfc9110#section-15.5.2) +* [JSON Web Token (JWT)](https://datatracker.ietf.org/doc/html/rfc7519) +* [The OAuth 2.0 Authorization Framework](https://datatracker.ietf.org/doc/html/rfc6749) +* [OAuth 2.0 Demonstrating Proof of Possession DPoP](https://datatracker.ietf.org/doc/html/rfc9449) +* [OAuth 2.0 JWT-Secured Authorization Request (JAR) RFC 9101](https://datatracker.ietf.org/doc/rfc9101/) +* [OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens](https://datatracker.ietf.org/doc/html/rfc8705) +* [OpenID Connect 1.0](https://openid.net/specs/openid-connect-core-1_0-final.html) +* [Microsoft identity platform and OAuth 2.0 On-Behalf-Of flow](/azure/active-directory/develop/v2-oauth2-on-behalf-of-flow) +* [OAuth 2.0 Token Exchange](https://datatracker.ietf.org/doc/html/rfc8693) +* [JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens](https://datatracker.ietf.org/doc/html/rfc9068) +* [HTTP Semantics RFC 9110](https://datatracker.ietf.org/doc/html/rfc9110#section-15.5.2) From 1211ae23fba17db8d7abf40b18694732d47e0203 Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Mon, 28 Jul 2025 08:50:18 -0400 Subject: [PATCH 10/18] Updates --- .openpublishing.redirection.json | 7 +- .../fundamentals/choose-aspnet-framework.md | 55 ------- .../fundamentals/configuration/index.md | 3 +- .../configuration/index/includes/index6.md | 3 +- .../configuration/index/includes/index7.md | 3 +- .../fundamentals/index/includes/index3-7.md | 4 - .../fundamentals/index/includes/index8.md | 4 - aspnetcore/get-started.md | 8 + aspnetcore/includes/key-features.md | 53 ------- aspnetcore/introduction-to-aspnet-core.md | 149 ++++++------------ aspnetcore/performance/caching/middleware.md | 2 +- aspnetcore/security/authentication/cookie.md | 20 +-- aspnetcore/toc.yml | 10 +- 13 files changed, 84 insertions(+), 237 deletions(-) delete mode 100644 aspnetcore/fundamentals/choose-aspnet-framework.md delete mode 100644 aspnetcore/includes/key-features.md diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json index a965b409e8fe..d5be1ca78b52 100644 --- a/.openpublishing.redirection.json +++ b/.openpublishing.redirection.json @@ -762,7 +762,7 @@ }, { "source_path": "aspnetcore/choose-aspnet-framework.md", - "redirect_url": "/aspnet/core/fundamentals/choose-aspnet-framework", + "redirect_url": "/aspnet/core/introduction-to-aspnet-core", "redirect_document_id": false }, { @@ -1572,6 +1572,11 @@ "source_path": "aspnetcore/getting-started/index.md", "redirect_url": "/aspnet/core/get-started", "redirect_document_id": false + }, + { + "source_path": "aspnetcore/fundamentals/choose-aspnet-framework.md", + "redirect_url": "/aspnet/core/introduction-to-aspnet-core", + "redirect_document_id": false } ] } diff --git a/aspnetcore/fundamentals/choose-aspnet-framework.md b/aspnetcore/fundamentals/choose-aspnet-framework.md deleted file mode 100644 index 60db9e466f10..000000000000 --- a/aspnetcore/fundamentals/choose-aspnet-framework.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: Choose between ASP.NET 4.x and ASP.NET Core -author: tdykstra -description: Explains ASP.NET Core vs. ASP.NET 4.x and how to choose between them. -ms.author: tdykstra -ms.custom: mvc -ms.date: 05/28/2025 -uid: fundamentals/choose-between-aspnet-and-aspnetcore ---- -# Choose between ASP.NET 4.x and ASP.NET Core - -ASP.NET Core is a redesign of ASP.NET 4.x. This article lists the differences between them. - -## ASP.NET Core - -ASP.NET Core is an open-source, cross-platform framework for building modern, cloud-based web apps on Windows, macOS, or Linux. - -[!INCLUDE[](~/includes/key-features.md)] - -## ASP.NET 4.x - -ASP.NET 4.x is a mature framework that provides the services needed to build enterprise-grade, server-based web apps on Windows. - -## Framework selection - -The following table compares ASP.NET Core to ASP.NET 4.x. - -| ASP.NET Core | ASP.NET 4.x | -|---|---| -|Build for Windows, macOS, or Linux|Build for Windows| -|[Razor Pages](xref:razor-pages/index) is the recommended approach to create a Web UI as of ASP.NET Core 2.x. See also [MVC](xref:mvc/overview), [Web API](xref:tutorials/first-web-api), and [SignalR](xref:signalr/introduction).|Use [Web Forms](/aspnet/web-forms), [SignalR](/aspnet/signalr), [MVC](/aspnet/mvc), [Web API](/aspnet/web-api/), [WebHooks](/aspnet/webhooks/), or [Web Pages](/aspnet/web-pages)| -|Multiple versions per machine|One version per machine| -|Develop with [Visual Studio](https://visualstudio.microsoft.com/vs/) or [Visual Studio Code](https://code.visualstudio.com/) using C# or F#|Develop with [Visual Studio](https://visualstudio.microsoft.com/vs/) using C#, VB, or F#| -|Higher performance than ASP.NET 4.x|Good performance| -|[Use .NET Core runtime](/dotnet/standard/choosing-core-framework-server)|Use .NET Framework runtime| - -## ASP.NET Core scenarios - -* [Websites](xref:tutorials/first-mvc-app/start-mvc) -* [APIs](xref:tutorials/first-web-api) -* [Real-time](xref:signalr/introduction) -* [Deploy an ASP.NET Core app to Azure](/azure/app-service/app-service-web-get-started-dotnet) - -## ASP.NET 4.x scenarios - -* [Websites](/aspnet/mvc) -* [APIs](/aspnet/web-api) -* [Real-time](/aspnet/signalr) -* [Create an ASP.NET 4.x web app in Azure](/azure/app-service/app-service-web-get-started-dotnet-framework) - -## Additional resources - -* [Introduction to ASP.NET](/aspnet/overview) -* [Introduction to ASP.NET Core](xref:index) -* diff --git a/aspnetcore/fundamentals/configuration/index.md b/aspnetcore/fundamentals/configuration/index.md index 840f88e82a20..00cd6a5b0b5d 100644 --- a/aspnetcore/fundamentals/configuration/index.md +++ b/aspnetcore/fundamentals/configuration/index.md @@ -971,11 +971,12 @@ The [Configuration-binding source generator](/dotnet/core/whats-new/dotnet-8/run ## Additional resources * [Configuration source code](https://github.com/dotnet/runtime/tree/main/src/libraries/Microsoft.Extensions.Configuration) -* [WebApplicationBuilder source code](https://github.com/dotnet/aspnetcore/blob/v6.0.1/src/DefaultBuilder/src/WebApplicationBuilder.cs) * [View or download sample code](https://github.com/dotnet/AspNetCore.Docs/tree/main/aspnetcore/fundamentals/configuration/index/samples) ([how to download](xref:index#how-to-download-a-sample)) * * +[!INCLUDE[](~/includes/aspnetcore-repo-ref-source-links.md)] + :::moniker-end [!INCLUDE[](~/fundamentals/configuration/index/includes/index7.md)] diff --git a/aspnetcore/fundamentals/configuration/index/includes/index6.md b/aspnetcore/fundamentals/configuration/index/includes/index6.md index a3c49cc61265..b34211684dd9 100644 --- a/aspnetcore/fundamentals/configuration/index/includes/index6.md +++ b/aspnetcore/fundamentals/configuration/index/includes/index6.md @@ -932,9 +932,10 @@ An implementation allows add ## Additional resources * [Configuration source code](https://github.com/dotnet/runtime/tree/main/src/libraries/Microsoft.Extensions.Configuration) -* [WebApplicationBuilder source code](https://github.com/dotnet/aspnetcore/blob/v6.0.1/src/DefaultBuilder/src/WebApplicationBuilder.cs) * [View or download sample code](https://github.com/dotnet/AspNetCore.Docs/tree/main/aspnetcore/fundamentals/configuration/index/samples) ([how to download](xref:index#how-to-download-a-sample)) * * +[!INCLUDE[](~/includes/aspnetcore-repo-ref-source-links.md)] + :::moniker-end diff --git a/aspnetcore/fundamentals/configuration/index/includes/index7.md b/aspnetcore/fundamentals/configuration/index/includes/index7.md index ead546d6f194..a05f123481c3 100644 --- a/aspnetcore/fundamentals/configuration/index/includes/index7.md +++ b/aspnetcore/fundamentals/configuration/index/includes/index7.md @@ -937,9 +937,10 @@ An implementation allows add ## Additional resources * [Configuration source code](https://github.com/dotnet/runtime/tree/main/src/libraries/Microsoft.Extensions.Configuration) -* [WebApplicationBuilder source code](https://github.com/dotnet/aspnetcore/blob/v6.0.1/src/DefaultBuilder/src/WebApplicationBuilder.cs) * [View or download sample code](https://github.com/dotnet/AspNetCore.Docs/tree/main/aspnetcore/fundamentals/configuration/index/samples) ([how to download](xref:index#how-to-download-a-sample)) * * +[!INCLUDE[](~/includes/aspnetcore-repo-ref-source-links.md)] + :::moniker-end diff --git a/aspnetcore/fundamentals/index/includes/index3-7.md b/aspnetcore/fundamentals/index/includes/index3-7.md index 79f028476600..3a585c45d52f 100644 --- a/aspnetcore/fundamentals/index/includes/index3-7.md +++ b/aspnetcore/fundamentals/index/includes/index3-7.md @@ -209,10 +209,6 @@ In Razor `.cshtml` files, `~/` points to the web root. A path beginning with `~/ For more information, see . -## Additional resources - -* [WebApplicationBuilder source code](https://github.com/dotnet/aspnetcore/blob/v6.0.1/src/DefaultBuilder/src/WebApplicationBuilder.cs) - :::moniker-end :::moniker range="< aspnetcore-6.0" diff --git a/aspnetcore/fundamentals/index/includes/index8.md b/aspnetcore/fundamentals/index/includes/index8.md index 47b9b9d5bada..984afa1e221d 100644 --- a/aspnetcore/fundamentals/index/includes/index8.md +++ b/aspnetcore/fundamentals/index/includes/index8.md @@ -263,8 +263,4 @@ You may safely ignore or remove the `#region` and `#endregion` directives that s For more information, see [Contribute to the ASP.NET documentation: Code snippets](https://github.com/dotnet/AspNetCore.Docs/blob/main/CONTRIBUTING.md#code-snippets). -## Additional resources - -[WebApplicationBuilder source code](https://github.com/dotnet/aspnetcore/blob/v6.0.1/src/DefaultBuilder/src/WebApplicationBuilder.cs) - :::moniker-end diff --git a/aspnetcore/get-started.md b/aspnetcore/get-started.md index 902589c1f13a..864212be342a 100644 --- a/aspnetcore/get-started.md +++ b/aspnetcore/get-started.md @@ -252,3 +252,11 @@ To learn more about ASP.NET Core, see the following: > [!div class="nextstepaction"] > + +## Additional resources + +* [Introduction to .NET](/dotnet/core/introduction) +* [Visual Studio](https://visualstudio.microsoft.com/) +* [Visual Studio Code](https://code.visualstudio.com/) +* [.NET Developer Community](https://dotnet.microsoft.com/platform/community) +* [.NET Live TV](https://live.dot.net) diff --git a/aspnetcore/includes/key-features.md b/aspnetcore/includes/key-features.md deleted file mode 100644 index c1a600c3f8e6..000000000000 --- a/aspnetcore/includes/key-features.md +++ /dev/null @@ -1,53 +0,0 @@ -Key features: - -:::moniker range=">= aspnetcore-6.0" - -* Lightweight and modular HTTP request pipeline. -* [Kestrel](xref:fundamentals/servers/kestrel): A [high-performance](https://github.com/aspnet/benchmarks) and cross-platform HTTP server. -* Integrated [dependency injection](xref:fundamentals/dependency-injection). -* [Environment-based configuration](xref:fundamentals/configuration/index). -* Rich logging, tracing, and runtime metrics. -* [Blazor](xref:blazor/index): Create rich interactive web UI components using [C#](/dotnet/csharp/)—no JavaScript required. -* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). -* [Minimal APIs](xref:fundamentals/minimal-apis): Build fast web APIs with minimal code and configuration by fluently declaring API routes and endpoints. -* [SignalR](xref:signalr/index): Add real-time web functionality. -* [gRPC](xref:grpc/index): High performance Remote Procedure Call (RPC) services. -* Security: Built-in security features for [authentication](xref:security/authentication/index), [authorization](xref:security/authorization/introduction), and [data protection](xref:security/data-protection/introduction). -* Testing: Easily create unit and integration tests. -* Tooling: Maximize your development productivity with [Visual Studio](https://visualstudio.microsoft.com/) and [Visual Studio Code](https://code.visualstudio.com/). - -:::moniker-end - -:::moniker range=">= aspnetcore-3.0 < aspnetcore-6.0" - -* Lightweight and modular HTTP request pipeline. -* [Kestrel](xref:fundamentals/servers/kestrel): A [high-performance](https://github.com/aspnet/benchmarks) and cross-platform HTTP server. -* Integrated [dependency injection](xref:fundamentals/dependency-injection). -* [Environment-based configuration](xref:fundamentals/configuration/index). -* Rich logging, tracing, and runtime metrics. -* [Blazor](xref:blazor/index): Create rich interactive web UI components using [C#](/dotnet/csharp/)—no JavaScript required. -* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). -* [SignalR](xref:signalr/index): Add real-time web functionality. -* [gRPC](xref:grpc/index): High performance Remote Procedure Call (RPC) services. -* Security: Built-in security features for [authentication](xref:security/authentication/index), [authorization](xref:security/authorization/introduction), and [data protection](xref:security/data-protection/introduction). -* Testing: Easily create unit and integration tests. -* Tooling: Maximize your development productivity with [Visual Studio](https://visualstudio.microsoft.com/) and [Visual Studio Code](https://code.visualstudio.com/). - -:::moniker-end - -:::moniker range="< aspnetcore-3.0" - -* Lightweight and modular HTTP request pipeline. -* [Kestrel](xref:fundamentals/servers/kestrel): A [high-performance](https://github.com/aspnet/benchmarks) and cross-platform HTTP server. -* Integrated [dependency injection](xref:fundamentals/dependency-injection). -* [Environment-based configuration](xref:fundamentals/configuration/index). -* Rich logging, tracing, and runtime metrics. -* Develop apps and APIs using [Razor Pages](xref:razor-pages/index) and [Model-View-Controller (MVC)](xref:mvc/overview) frameworks. -* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). -* [SignalR](xref:signalr/index): Add real-time web functionality. -* [gRPC](xref:grpc/index): High performance Remote Procedure Call (RPC) services. -* Security: Built-in security features for [authentication](xref:security/authentication/index), [authorization](xref:security/authorization/introduction), and [data protection](xref:security/data-protection/introduction). -* Testing: Easily create unit and integration tests. -* Tooling: Maximize your development productivity with [Visual Studio](https://visualstudio.microsoft.com/) and [Visual Studio Code](https://code.visualstudio.com/). - -:::moniker-end diff --git a/aspnetcore/introduction-to-aspnet-core.md b/aspnetcore/introduction-to-aspnet-core.md index cdba6e32c269..eee524639529 100644 --- a/aspnetcore/introduction-to-aspnet-core.md +++ b/aspnetcore/introduction-to-aspnet-core.md @@ -4,128 +4,81 @@ author: tdykstra description: Get an overview of ASP.NET Core, a cross-platform, high-performance, open-source framework for building modern, cloud-enabled, Internet-connected apps. ms.author: tdykstra ms.custom: mvc -ms.date: 07/25/2025 +ms.date: 07/28/2025 uid: index --- # Overview of ASP.NET Core [!INCLUDE[](~/includes/not-latest-version.md)] -ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern web apps. The framework is built for large-scale app development and can handle any size workload, making it a robust choice for enterprise-level apps. +ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern web apps using .NET. The framework is built for large-scale app development and can handle any size workload, making it a robust choice for enterprise-level apps. -[!INCLUDE[](~/includes/key-features.md)] - -## Why choose ASP.NET Core? (OPTION 1: COLLAPSED BULLET LIST) - -* **Unified framework**: ASP.NET Core is a complete and fully integrated web framework with built-in production-ready components to handle all of your web development needs. -* **Full stack productivity**: Build more apps faster by enabling your team to work full stack, from the frontend to the backend, using a single development framework. -* **Secure by design**: ASP.NET Core is built with security as a top concern and includes built-in support for authentication, authorization, and data protection. -* **Cloud-ready**: Whether you're deploying to your own data centers or to the cloud, ASP.NET Core simplifies deployment, monitoring, and configuration. -* **Performance & scalability**: Handle the most demanding workloads with ASP.NET Core's industry leading performance. -* **Trusted and mature**: ASP.NET Core is used and proven at hyperscale by some of the largest services in the world, including Bing, Xbox, Microsoft 365, and Azure. - -## Why choose ASP.NET Core? (OPTION 2: SPACED BULLET LIST) - -* **Unified framework**: ASP.NET Core is a complete and fully integrated web framework with built-in production-ready components to handle all of your web development needs. - -* **Full stack productivity**: Build more apps faster by enabling your team to work full stack, from the frontend to the backend, using a single development framework. - -* **Secure by design**: ASP.NET Core is built with security as a top concern and includes built-in support for authentication, authorization, and data protection. - -* **Cloud-ready**: Whether you're deploying to your own data centers or to the cloud, ASP.NET Core simplifies deployment, monitoring, and configuration. - -* **Performance & scalability**: Handle the most demanding workloads with ASP.NET Core's industry leading performance. - -* **Trusted and mature**: ASP.NET Core is used and proven at hyperscale by some of the largest services in the world, including Bing, Xbox, Microsoft 365, and Azure. - -## Why choose ASP.NET Core? (OPTION 3: UNBULLETED LIST WITH ADDL SPACING) - -**Unified framework** - -ASP.NET Core is a complete and fully integrated web framework with built-in production-ready components to handle all of your web development needs. - -**Full stack productivity** - -Build more apps faster by enabling your team to work full stack, from the frontend to the backend, using a single development framework. - -**Secure by design** - -ASP.NET Core is built with security as a top concern and includes built-in support for authentication, authorization, and data protection. - -**Cloud-ready** - -Whether you're deploying to your own data centers or to the cloud, ASP.NET Core simplifies deployment, monitoring, and configuration. - -**Performance & scalability** - -Handle the most demanding workloads with ASP.NET Core's industry leading performance. - -**Trusted and mature** - -ASP.NET Core is used and proven at hyperscale by some of the largest services in the world, including Bing, Xbox, Microsoft 365, and Azure. - -## Tutorials to get started - -Our tutorial for new developers and developers new to .NET is . - -Once you've completed the *Get started* tutorial, we recommend reading the [ASP.NET Core fundamentals](xref:fundamentals/index) article, which covers the basics of ASP.NET Core. - -Next, experience ASP.NET Core in action with our other tutorials. You can use each tutorial in the order shown, or you can select a specific tutorial if you know in advance the type of app that you plan to build. +Key features: :::moniker range=">= aspnetcore-6.0" -App type | Scenario | Tutorial --------- | -------- | -------- -Web app | New server and client web development with Blazor – ***Recommended*** | [Build your first web app with ASP.NET Core using Blazor (Interactive Online Learn Module)](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro) or [Build your first web app with Blazor (Visual Studio or Visual Studio Code)](/training/modules/build-your-first-blazor-web-app/) -Web API | Server-based data processing with Minimal APIs – ***Recommended*** | and [Build a web API with minimal API, ASP.NET Core, and .NET (.NET SDK)](/training/modules/build-web-api-minimal-api/) -Remote Procedure Call (RPC) app | Contract-first services using Protocol Buffers | -Real-time app | Server/client bidirectional communication | +* Lightweight and modular HTTP request pipeline. +* [Kestrel](xref:fundamentals/servers/kestrel): A [high-performance](https://github.com/aspnet/benchmarks) and cross-platform HTTP server. +* Integrated [dependency injection](xref:fundamentals/dependency-injection). +* [Environment-based configuration](xref:fundamentals/configuration/index). +* Rich logging, tracing, and runtime metrics. +* [Blazor](xref:blazor/index): Create rich interactive web UI components using [C#](/dotnet/csharp/)—no JavaScript required. +* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). +* [Minimal APIs](xref:fundamentals/minimal-apis): Build fast web APIs with minimal code and configuration by fluently declaring API routes and endpoints. +* [SignalR](xref:signalr/index): Add real-time web functionality. +* [gRPC](xref:grpc/index): High performance Remote Procedure Call (RPC) services. +* Security: Built-in security features for [authentication](xref:security/authentication/index), [authorization](xref:security/authorization/introduction), and [data protection](xref:security/data-protection/introduction). +* Testing: Easily create unit and integration tests. +* Tooling: Maximize your development productivity with [Visual Studio](https://visualstudio.microsoft.com/) and [Visual Studio Code](https://code.visualstudio.com/). :::moniker-end :::moniker range=">= aspnetcore-3.0 < aspnetcore-6.0" -App type | Scenario | Tutorial --------- | -------- | -------- -Web app | New server and client web development with Blazor - ***Recommended*** | [Build your first web app with ASP.NET Core using Blazor (Interactive Online Learn Module)](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro) or [Build your first web app with Blazor (Visual Studio or Visual Studio Code)](/training/modules/build-your-first-blazor-web-app/) -Web API | Server-based data processing | and [Create a web API with ASP.NET Core controllers (.NET SDK)](/training/modules/build-web-api-aspnet-core/) -Remote Procedure Call (RPC) app | Contract-first services using Protocol Buffers | -Real-time app | Server/client bidirectional communication | +* Lightweight and modular HTTP request pipeline. +* [Kestrel](xref:fundamentals/servers/kestrel): A [high-performance](https://github.com/aspnet/benchmarks) and cross-platform HTTP server. +* Integrated [dependency injection](xref:fundamentals/dependency-injection). +* [Environment-based configuration](xref:fundamentals/configuration/index). +* Rich logging, tracing, and runtime metrics. +* [Blazor](xref:blazor/index): Create rich interactive web UI components using [C#](/dotnet/csharp/)—no JavaScript required. +* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). +* [SignalR](xref:signalr/index): Add real-time web functionality. +* [gRPC](xref:grpc/index): High performance Remote Procedure Call (RPC) services. +* Security: Built-in security features for [authentication](xref:security/authentication/index), [authorization](xref:security/authorization/introduction), and [data protection](xref:security/data-protection/introduction). +* Testing: Easily create unit and integration tests. +* Tooling: Maximize your development productivity with [Visual Studio](https://visualstudio.microsoft.com/) and [Visual Studio Code](https://code.visualstudio.com/). :::moniker-end :::moniker range="< aspnetcore-3.0" -App type | Scenario | Tutorial --------- | -------- | -------- -Web app | New web development | -Web app | New server-side web development with MVC | -Web API | Server-based data processing | and [Create a web API with ASP.NET Core controllers (.NET SDK)](/training/modules/build-web-api-aspnet-core/) -Real-time app | Server/client bidirectional communication | +* Lightweight and modular HTTP request pipeline. +* [Kestrel](xref:fundamentals/servers/kestrel): A [high-performance](https://github.com/aspnet/benchmarks) and cross-platform HTTP server. +* Integrated [dependency injection](xref:fundamentals/dependency-injection). +* [Environment-based configuration](xref:fundamentals/configuration/index). +* Rich logging, tracing, and runtime metrics. +* Develop apps and APIs using [Razor Pages](xref:razor-pages/index) and [Model-View-Controller (MVC)](xref:mvc/overview) frameworks. +* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). +* [SignalR](xref:signalr/index): Add real-time web functionality. +* [gRPC](xref:grpc/index): High performance Remote Procedure Call (RPC) services. +* Security: Built-in security features for [authentication](xref:security/authentication/index), [authorization](xref:security/authorization/introduction), and [data protection](xref:security/data-protection/introduction). +* Testing: Easily create unit and integration tests. +* Tooling: Maximize your development productivity with [Visual Studio](https://visualstudio.microsoft.com/) and [Visual Studio Code](https://code.visualstudio.com/). :::moniker-end -:::moniker range=">= aspnetcore-3.0" - -To learn about data access concepts, see . +## Why choose ASP.NET Core? -:::moniker-end - -:::moniker range="< aspnetcore-3.0" - -The tutorials in the following table teach data access concepts. - -Scenario | Tutorial --------- | -------- -New development with Razor Pages | -New development with MVC | +* **Unified framework**: ASP.NET Core is a complete and fully integrated web framework with built-in production-ready components to handle all of your web development needs. +* **Full stack productivity**: Build more apps faster by enabling your team to work full stack, from the frontend to the backend, using a single development framework. +* **Secure by design**: ASP.NET Core is built with security as a top concern and includes built-in support for authentication, authorization, and data protection. +* **Cloud-ready**: Whether you're deploying to your own data centers or to the cloud, ASP.NET Core simplifies deployment, monitoring, and configuration. +* **Performance & scalability**: Handle the most demanding workloads with ASP.NET Core's industry leading performance. +* **Trusted and mature**: ASP.NET Core is used and proven at hyperscale by some of the largest services in the world, including Bing, Xbox, Microsoft 365, and Azure. -:::moniker-end +## Get started -## Additional resources +Are ready to start your ASP.NET Core learning journey? It's time to build your first web app with ASP.NET Core! -* [Download .NET](https://dotnet.microsoft.com/download) -* [Visual Studio](https://visualstudio.microsoft.com/) -* [Visual Studio Code](https://code.visualstudio.com/) -* [.NET Developer Community](https://dotnet.microsoft.com/platform/community) -* [.NET Live TV](https://live.dot.net) +> [!div class="nextstepaction"] +> diff --git a/aspnetcore/performance/caching/middleware.md b/aspnetcore/performance/caching/middleware.md index dafea6f7c044..ff17588674cd 100644 --- a/aspnetcore/performance/caching/middleware.md +++ b/aspnetcore/performance/caching/middleware.md @@ -110,7 +110,7 @@ For more control over caching behavior, explore other caching features of ASP.NE ## Troubleshooting -The [Response Caching Middleware](https://github.com/dotnet/aspnetcore/blob/main/src/Middleware/ResponseCaching/src/ResponseCachingMiddleware.cs) uses , which has a limited capacity. When the capacity is exceeded, the [memory cache is compacted](https://github.com/dotnet/runtime/blob/v6.0.1/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCache.cs#L359-L365). +The [Response Caching Middleware](https://github.com/dotnet/aspnetcore/blob/main/src/Middleware/ResponseCaching/src/ResponseCachingMiddleware.cs) uses , which has a limited capacity. When the capacity is exceeded, the memory cache is compacted. If caching behavior isn't as expected, confirm that responses are cacheable and capable of being served from the cache. Examine the request's incoming headers and the response's outgoing headers. Enable [logging](xref:fundamentals/logging/index) to help with debugging. diff --git a/aspnetcore/security/authentication/cookie.md b/aspnetcore/security/authentication/cookie.md index 4b47bb96db4c..9f41d3e7390e 100644 --- a/aspnetcore/security/authentication/cookie.md +++ b/aspnetcore/security/authentication/cookie.md @@ -28,7 +28,7 @@ For demonstration purposes in the sample app, the user account for the hypotheti passed to `AddAuthentication` sets the default authentication scheme for the app. `AuthenticationScheme` is useful when there are multiple instances of cookie authentication and the app needs to [authorize with a specific scheme](xref:security/authorization/limitingidentitybyscheme). Setting the `AuthenticationScheme` to [CookieAuthenticationDefaults.AuthenticationScheme](xref:Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationDefaults.AuthenticationScheme) provides a value of `"Cookies"` for the scheme. Any string value can be used that distinguishes the scheme. -The app's authentication scheme is different from the app's cookie authentication scheme. When a cookie authentication scheme isn't provided to , it uses [`CookieAuthenticationDefaults.AuthenticationScheme`](xref:Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationDefaults.AuthenticationScheme). [The `CookieAuthenticationDefaults.AuthenticationScheme` GitHub Source](https://github.com/dotnet/aspnetcore/blob/v6.0.1/src/Security/Authentication/Cookies/src/CookieAuthenticationDefaults.cs#L16) shows it's set to `"Cookies"`. +The app's authentication scheme is different from the app's cookie authentication scheme. When a cookie authentication scheme isn't provided to , it uses (default value: `Cookies`). The authentication cookie's property is set to `true` by default. Authentication cookies are allowed when a site visitor hasn't consented to data collection. For more information, see . @@ -70,7 +70,7 @@ The Cookie Policy Middleware setting for `MinimumSameSitePolicy` can affect the To create a cookie holding user information, construct a . The user information is serialized and stored in the cookie. -Create a with any required s and call to sign in the user. `Login.cshtml.cs` in the sample app contains the following code: +Create a with any required s and call to sign in the user. `Login.cshtml.cs` in the sample app contains the following code: [!code-csharp[](cookie/samples/6.x/CookieSample/Pages/Account/Login.cshtml.cs?name=snippet1&highlight=22-59)] @@ -84,11 +84,11 @@ ASP.NET Core's [Data Protection](xref:security/data-protection/using-data-protec ## Sign out -To sign out the current user and delete their cookie, call : +To sign out the current user and delete their cookie, call : [!code-csharp[](cookie/samples/6.x/CookieSample/Pages/Account/Login.cshtml.cs?name=snippet2)] -If `CookieAuthenticationDefaults.AuthenticationScheme` or ["Cookies"](https://github.com/dotnet/aspnetcore/blob/v6.0.1/src/Security/Authentication/Cookies/src/CookieAuthenticationDefaults.cs#L16) isn't used as the scheme, supply the scheme used when configuring the authentication provider. Otherwise, the default scheme is used. For example, if "ContosoCookie" is used as the scheme, supply the scheme used when configuring the authentication provider. +Either supply the default authentication scheme ("`Cookies`") or supply the scheme that was used when configuring the authentication provider. When the browser closes it automatically deletes session based cookies (non-persistent cookies), but no cookies are cleared when an individual tab is closed. The server is not notified of tab or browser close events. @@ -99,7 +99,7 @@ Once a cookie is created, the cookie is the single source of identity. If a user * The app's cookie authentication system continues to process requests based on the authentication cookie. * The user remains signed into the app as long as the authentication cookie is valid. -The event can be used to intercept and override validation of the cookie identity. Validating the cookie on every request mitigates the risk of revoked users accessing the app. +The event can be used to intercept and override validation of the cookie identity. Validating the cookie on every request mitigates the risk of revoked users accessing the app. One approach to cookie validation is based on keeping track of when the user database changes. If the database hasn't been changed since the user's cookie was issued, there's no need to re-authenticate the user if their cookie is still valid. In the sample app, the database is implemented in `IUserRepository` and stores a `LastChanged` value. When a user is updated in the database, the `LastChanged` value is set to the current time. @@ -196,7 +196,7 @@ In the `Startup.ConfigureServices` method, create the Authentication Middleware passed to `AddAuthentication` sets the default authentication scheme for the app. `AuthenticationScheme` is useful when there are multiple instances of cookie authentication and you want to [authorize with a specific scheme](xref:security/authorization/limitingidentitybyscheme). Setting the `AuthenticationScheme` to [CookieAuthenticationDefaults.AuthenticationScheme](xref:Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationDefaults.AuthenticationScheme) provides a value of "Cookies" for the scheme. You can supply any string value that distinguishes the scheme. -The app's authentication scheme is different from the app's cookie authentication scheme. When a cookie authentication scheme isn't provided to , it uses `CookieAuthenticationDefaults.AuthenticationScheme` ("Cookies"). +The app's authentication scheme is different from the app's cookie authentication scheme. When a cookie authentication scheme isn't provided to , it uses `CookieAuthenticationDefaults.AuthenticationScheme` ("Cookies"). The authentication cookie's property is set to `true` by default. Authentication cookies are allowed when a site visitor hasn't consented to data collection. For more information, see . @@ -247,7 +247,7 @@ The Cookie Policy Middleware setting for `MinimumSameSitePolicy` can affect the To create a cookie holding user information, construct a . The user information is serialized and stored in the cookie. -Create a with any required s and call to sign in the user: +Create a with any required s and call to sign in the user: [!code-csharp[](cookie/samples/3.x/CookieSample/Pages/Account/Login.cshtml.cs?name=snippet1)] @@ -261,11 +261,11 @@ ASP.NET Core's [Data Protection](xref:security/data-protection/using-data-protec ## Sign out -To sign out the current user and delete their cookie, call : +To sign out the current user and delete their cookie, call : [!code-csharp[](cookie/samples/3.x/CookieSample/Pages/Account/Login.cshtml.cs?name=snippet2)] -If `CookieAuthenticationDefaults.AuthenticationScheme` (or "Cookies") isn't used as the scheme (for example, "ContosoCookie"), supply the scheme used when configuring the authentication provider. Otherwise, the default scheme is used. +Either supply the default authentication scheme ("`Cookies`") or supply the scheme that was used when configuring the authentication provider. When the browser closes it automatically deletes session based cookies (non-persistent cookies), but no cookies are cleared when an individual tab is closed. The server is not notified of tab or browser close events. @@ -276,7 +276,7 @@ Once a cookie is created, the cookie is the single source of identity. If a user * The app's cookie authentication system continues to process requests based on the authentication cookie. * The user remains signed into the app as long as the authentication cookie is valid. -The event can be used to intercept and override validation of the cookie identity. Validating the cookie on every request mitigates the risk of revoked users accessing the app. +The event can be used to intercept and override validation of the cookie identity. Validating the cookie on every request mitigates the risk of revoked users accessing the app. One approach to cookie validation is based on keeping track of when the user database changes. If the database hasn't been changed since the user's cookie was issued, there's no need to re-authenticate the user if their cookie is still valid. In the sample app, the database is implemented in `IUserRepository` and stores a `LastChanged` value. When a user is updated in the database, the `LastChanged` value is set to the current time. diff --git a/aspnetcore/toc.yml b/aspnetcore/toc.yml index 3888d1d06397..a5c143023b49 100644 --- a/aspnetcore/toc.yml +++ b/aspnetcore/toc.yml @@ -1,14 +1,8 @@ items: - name: ASP.NET Core documentation href: index.yml - - name: Overview - items: - - name: About ASP.NET Core - uid: index - - name: Compare ASP.NET Core and ASP.NET - uid: fundamentals/choose-between-aspnet-and-aspnetcore - - name: Compare .NET and .NET Framework - href: /dotnet/standard/choosing-core-framework-server?toc=/aspnet/core/toc.json&bc=/aspnet/core/breadcrumb/toc.json + - name: About ASP.NET Core + uid: index - name: Get started uid: get-started - name: What's new From 4b12a5e3588b6991ebb98f9df4abe89358fabca0 Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Wed, 23 Jul 2025 10:15:28 -0400 Subject: [PATCH 11/18] Overview of ASP.NET Core updates --- aspnetcore/blazor/advanced-scenarios.md | 2 +- .../fundamentals/choose-aspnet-framework.md | 2 +- aspnetcore/fundamentals/index.md | 52 ++++ .../fundamentals/minimal-apis/overview.md | 3 +- aspnetcore/includes/benefits.md | 66 ++++- aspnetcore/includes/bind-get.md | 2 +- aspnetcore/introduction-to-aspnet-core.md | 246 +++++------------- aspnetcore/release-notes/aspnetcore-1.1.md | 2 +- aspnetcore/release-notes/aspnetcore-2.0.md | 2 +- cspell.json | 2 + 10 files changed, 191 insertions(+), 188 deletions(-) diff --git a/aspnetcore/blazor/advanced-scenarios.md b/aspnetcore/blazor/advanced-scenarios.md index 81806ed2f997..b50c23d5f6fd 100644 --- a/aspnetcore/blazor/advanced-scenarios.md +++ b/aspnetcore/blazor/advanced-scenarios.md @@ -142,5 +142,5 @@ This is a trivial example. In more realistic cases with complex and deeply neste * The necessary information doesn't exist to permit the framework to generate sequence numbers automatically at runtime unless the information is captured at compile time. * Don't write long blocks of manually-implemented logic. Prefer `.razor` files and allow the compiler to deal with the sequence numbers. If you're unable to avoid manual logic, split long blocks of code into smaller pieces wrapped in / calls. Each region has its own separate space of sequence numbers, so you can restart from zero (or any other arbitrary number) inside each region. * If sequence numbers are hardcoded, the diff algorithm only requires that sequence numbers increase in value. The initial value and gaps are irrelevant. One legitimate option is to use the code line number as the sequence number, or start from zero and increase by ones or hundreds (or any preferred interval). -* For loops, the sequence numbers should increase in your source code, not in terms of runtime behavior. The fact that, at runtime, the numbers repeat is how the diffing system realises you're in a loop. +* For loops, the sequence numbers should increase in your source code, not in terms of runtime behavior. The fact that, at runtime, the numbers repeat is how the diffing system realizes you're in a loop. * Blazor uses sequence numbers, while other tree-diffing UI frameworks don't use them. Diffing is far faster when sequence numbers are used, and Blazor has the advantage of a compile step that deals with sequence numbers automatically for developers authoring `.razor` files. diff --git a/aspnetcore/fundamentals/choose-aspnet-framework.md b/aspnetcore/fundamentals/choose-aspnet-framework.md index 322b61e80c54..9dcec25a2ecc 100644 --- a/aspnetcore/fundamentals/choose-aspnet-framework.md +++ b/aspnetcore/fundamentals/choose-aspnet-framework.md @@ -34,7 +34,7 @@ The following table compares ASP.NET Core to ASP.NET 4.x. |Higher performance than ASP.NET 4.x|Good performance| |[Use the latest .NET runtime](/dotnet/standard/choosing-core-framework-server)|Use .NET Framework runtime| -See [ASP.NET Core targeting .NET Framework](xref:index#target-framework) for information on ASP.NET Core 2.x support on .NET Framework. +See [ASP.NET Core targeting .NET Framework](xref:index#aspnet-core-target-frameworks) for information on ASP.NET Core 2.x support on .NET Framework. ## ASP.NET Core scenarios diff --git a/aspnetcore/fundamentals/index.md b/aspnetcore/fundamentals/index.md index 514af822d7f6..845b1a024b4e 100644 --- a/aspnetcore/fundamentals/index.md +++ b/aspnetcore/fundamentals/index.md @@ -18,6 +18,58 @@ This article provides an overview of the fundamentals for building ASP.NET Core For Blazor fundamentals guidance, which adds to or supersedes the guidance in this article, see . +## How to download a sample + +Many of the articles and tutorials include links to sample code. + +1. [Download the ASP.NET repository zip file](https://codeload.github.com/dotnet/AspNetCore.Docs/zip/main). +1. Unzip the `AspNetCore.Docs-main.zip` file. +1. To access an article's sample app in the unzipped repository, use the URL in the article's sample link to help you navigate to the sample's folder. Usually, an article's sample link appears at the top of the article with the link text *View or download sample code*. + +### Preprocessor directives in sample code + +To demonstrate multiple scenarios, sample apps use the `#define` and `#if-#else/#elif-#endif` preprocessor directives to selectively compile and run different sections of sample code. For those samples that make use of this approach, set the `#define` directive at the top of the C# files to define the symbol associated with the scenario that you want to run. Some samples require defining the symbol at the top of multiple files in order to run a scenario. + +For example, the following `#define` symbol list indicates that four scenarios are available (one scenario per symbol). The current sample configuration runs the `TemplateCode` scenario: + +```csharp +#define TemplateCode // or LogFromMain or ExpandDefault or FilterInCode +``` + +To change the sample to run the `ExpandDefault` scenario, define the `ExpandDefault` symbol and leave the remaining symbols commented-out: + +```csharp +#define ExpandDefault // TemplateCode or LogFromMain or FilterInCode +``` + +For more information on using [C# preprocessor directives](/dotnet/csharp/language-reference/preprocessor-directives/) to selectively compile sections of code, see [#define (C# Reference)](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-define) and [#if (C# Reference)](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-if). + +### Regions in sample code + +Some sample apps contain sections of code surrounded by [#region](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-region) and [#endregion](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-endregion) C# directives. The documentation build system injects these regions into the rendered documentation topics. + +Region names usually contain the word "snippet." The following example shows a region named `snippet_WebHostDefaults`: + +```csharp +#region snippet_WebHostDefaults +Host.CreateDefaultBuilder(args) + .ConfigureWebHostDefaults(webBuilder => + { + webBuilder.UseStartup(); + }); +#endregion +``` + +The preceding C# code snippet is referenced in the topic's markdown file with the following line: + +```md +[!code-csharp[](sample/SampleApp/Program.cs?name=snippet_WebHostDefaults)] +``` + +You may safely ignore or remove the `#region` and `#endregion` directives that surround the code. Don't alter the code within these directives if you plan to run the sample scenarios described in the topic. + +For more information, see [Contribute to the ASP.NET documentation: Code snippets](https://github.com/dotnet/AspNetCore.Docs/blob/main/CONTRIBUTING.md#code-snippets). + ## Program.cs ASP.NET Core apps created with the web templates contain the application startup code in the `Program.cs` file. The `Program.cs` file is where: diff --git a/aspnetcore/fundamentals/minimal-apis/overview.md b/aspnetcore/fundamentals/minimal-apis/overview.md index adb142043d88..55eed08eac1b 100644 --- a/aspnetcore/fundamentals/minimal-apis/overview.md +++ b/aspnetcore/fundamentals/minimal-apis/overview.md @@ -11,8 +11,7 @@ uid: fundamentals/minimal-apis/overview [!INCLUDE[](~/includes/not-latest-version.md)] -Minimal APIs are a simplified approach for building fast HTTP APIs with ASP.NET Core. -You can build fully functioning REST endpoints with minimal code and configuration. Skip traditional scaffolding and avoid unnecessary controllers by fluently declaring API routes and actions. For example, the following code creates an API at the root of the web app that returns the text, `"Hello World!"`. +Minimal APIs are a simplified approach for building fast HTTP APIs with ASP.NET Core. You can build fully functioning REST endpoints with minimal code and configuration. Skip traditional scaffolding and avoid unnecessary controllers by fluently declaring API routes and actions. For example, the following code creates an API at the root of a web app that returns a greeting: ```csharp var app = WebApplication.Create(args); diff --git a/aspnetcore/includes/benefits.md b/aspnetcore/includes/benefits.md index e0d9d996a000..4262a7d1791b 100644 --- a/aspnetcore/includes/benefits.md +++ b/aspnetcore/includes/benefits.md @@ -1,17 +1,48 @@ ASP.NET Core provides the following benefits: -* A unified story for building web UI and web APIs. +:::moniker range=">= aspnetcore-6.0" + + + +* A unified story for building web apps, web APIs, Azure IoT (Internet of Things) apps, and mobile backends. +* Architected for testability. +* [Blazor](xref:blazor/index) lets you create rich interactive client-side UIs using [.NET](/dotnet/standard/tour)/[C#](/dotnet/csharp/) with wide browser support based on HTML/JavaScript, including mobile browsers. You can also build hybrid desktop and mobile apps with .NET and Blazor. +* [Minimal APIs](xref:fundamentals/minimal-apis) are a simplified approach for building fast web APIs with minimal code and configuration by fluently declaring API routes and actions. +* Supports [Razor Pages](xref:razor-pages/index) and [Model-View-Controller (MVC)](xref:mvc/overview) app development. +* Ability to develop and run on Windows, macOS, and Linux. +* Open-source and [community-focused](https://live.asp.net/). +* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). +* Support for hosting Remote Procedure Call (RPC) services using [gRPC](xref:grpc/index). +* A cloud-ready, environment-based [configuration system](xref:fundamentals/configuration/index). +* Built-in [dependency injection](xref:fundamentals/dependency-injection). +* A lightweight, [high-performance](https://github.com/aspnet/benchmarks), and modular HTTP request pipeline. +* Ability to host in the cloud or on-premises with the following: + * [Kestrel](xref:fundamentals/servers/kestrel) + * [IIS](xref:host-and-deploy/iis/index) + * [HTTP.sys](xref:fundamentals/servers/httpsys) + * [Nginx](xref:host-and-deploy/linux-nginx) + * [Docker](xref:host-and-deploy/docker/index) +* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#side-by-side-net-versions-per-application-level). +* Tooling that simplifies modern web development. + +:::moniker-end + +:::moniker range=">= aspnetcore-3.0 < aspnetcore-6.0" + + + +* A unified story for building web apps, web APIs, Azure IoT (Internet of Things) apps, and mobile backends. * Architected for testability. -* [Blazor](xref:blazor/index) lets you use C# in the browser alongside JavaScript. Share server-side and client-side app logic all written with .NET. -* [Razor Pages](xref:razor-pages/index) makes coding page-focused scenarios easier and more productive. +* [Blazor](xref:blazor/index) lets you create rich interactive client-side UIs using [.NET](/dotnet/standard/tour)/[C#](/dotnet/csharp/) with wide browser support based on HTML/JavaScript, including mobile browsers. You can also build hybrid desktop and mobile apps with .NET and Blazor. +* Supports [Razor Pages](xref:razor-pages/index) and [Model-View-Controller (MVC)](xref:mvc/overview) app development. * Ability to develop and run on Windows, macOS, and Linux. * Open-source and [community-focused](https://live.asp.net/). -* Integration of [modern, client-side frameworks](xref:blazor/index) and development workflows. +* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). * Support for hosting Remote Procedure Call (RPC) services using [gRPC](xref:grpc/index). * A cloud-ready, environment-based [configuration system](xref:fundamentals/configuration/index). * Built-in [dependency injection](xref:fundamentals/dependency-injection). * A lightweight, [high-performance](https://github.com/aspnet/benchmarks), and modular HTTP request pipeline. -* Ability to host on the following: +* Ability to host in the cloud or on-premises with the following: * [Kestrel](xref:fundamentals/servers/kestrel) * [IIS](xref:host-and-deploy/iis/index) * [HTTP.sys](xref:fundamentals/servers/httpsys) @@ -19,3 +50,28 @@ ASP.NET Core provides the following benefits: * [Docker](xref:host-and-deploy/docker/index) * [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#side-by-side-net-versions-per-application-level). * Tooling that simplifies modern web development. + +:::moniker-end + +:::moniker range="< aspnetcore-3.0" + +* A unified story for building web apps, web APIs, Azure IoT (Internet of Things) apps, and mobile backends. +* Architected for testability. +* Supports [Razor Pages](xref:razor-pages/index) and [Model-View-Controller (MVC)](xref:mvc/overview) app development. +* Ability to develop and run on Windows, macOS, and Linux. +* Open-source and [community-focused](https://live.asp.net/). +* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). +* Support for hosting Remote Procedure Call (RPC) services using [gRPC](xref:grpc/index). +* A cloud-ready, environment-based [configuration system](xref:fundamentals/configuration/index). +* Built-in [dependency injection](xref:fundamentals/dependency-injection). +* A lightweight, [high-performance](https://github.com/aspnet/benchmarks), and modular HTTP request pipeline. +* Ability to host in the cloud or on-premises with the following: + * [Kestrel](xref:fundamentals/servers/kestrel) + * [IIS](xref:host-and-deploy/iis/index) + * [HTTP.sys](xref:fundamentals/servers/httpsys) + * [Nginx](xref:host-and-deploy/linux-nginx) + * [Docker](xref:host-and-deploy/docker/index) +* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#side-by-side-net-versions-per-application-level). +* Tooling that simplifies modern web development. + +:::moniker-end diff --git a/aspnetcore/includes/bind-get.md b/aspnetcore/includes/bind-get.md index 9b668d05047d..521c2c74ccd0 100644 --- a/aspnetcore/includes/bind-get.md +++ b/aspnetcore/includes/bind-get.md @@ -7,4 +7,4 @@ > [BindProperty(SupportsGet = true)] > ``` > -> For more information, see [ASP.NET Core Community Standup: Bind on GET discussion (YouTube)](https://www.youtube.com/watch?v=p7iHB9V-KVU&feature=youtu.be&t=54m27s). +> For more information, see [ASP.NET Community Standup: Bind on GET discussion (YouTube)](https://www.youtube.com/watch?v=p7iHB9V-KVU&feature=youtu.be&t=54m27s). diff --git a/aspnetcore/introduction-to-aspnet-core.md b/aspnetcore/introduction-to-aspnet-core.md index 145877d03460..d837e93fc90f 100644 --- a/aspnetcore/introduction-to-aspnet-core.md +++ b/aspnetcore/introduction-to-aspnet-core.md @@ -4,50 +4,42 @@ author: tdykstra description: Get an overview of ASP.NET Core, a cross-platform, high-performance, open-source framework for building modern, cloud-enabled, Internet-connected apps. ms.author: tdykstra ms.custom: mvc -ms.date: 06/21/2025 +ms.date: 07/23/2025 uid: index --- # Overview of ASP.NET Core -By [Daniel Roth](https://github.com/danroth27), [Rick Anderson](https://twitter.com/RickAndMSFT), and [Shaun Luttin](https://mvp.microsoft.com/en-us/PublicProfile/5001182) - [!INCLUDE[](~/includes/not-latest-version.md)] -:::moniker range=">= aspnetcore-3.0" +ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern web apps. It is built for large-scale app development and can handle any size workload, making it a robust choice for enterprise-level apps. -ASP.NET Core is a cross-platform, high-performance framework for building modern web applications. This [open-source](https://github.com/dotnet/aspnetcore) framework allows developers to create web applications, services, and APIs that can run on Windows, macOS, and Linux. It is built for large-scale app development and can handle any size workload, making it a robust choice for enterprise-level applications. +[!INCLUDE[](~/includes/benefits.md)] -With ASP.NET Core, you can: +## Build web apps and web APIs -* Build web apps and services, [Azure IoT (Internet of Things)](https://azure.microsoft.com/solutions/iot) apps, and mobile backends. -* Use your favorite development tools on Windows, macOS, and Linux. -* Deploy to the cloud or on-premises. -* Run on [.NET](/dotnet/core/introduction). +Use ASP.NET Core to build web apps with: -## Why choose ASP.NET Core? +:::moniker range=">= aspnetcore-6.0" -Millions of developers use or have used [ASP.NET 4.x](/aspnet/overview) to create web apps. ASP.NET Core is a redesign of ASP.NET 4.x, including architectural changes that result in a leaner, more modular framework. +* [Blazor](xref:blazor/index), a component-based web UI framework based on C# that supports both server-side rendering via the .NET runtime and client-side rendering via WebAssembly. +* [Minimal APIs](xref:fundamentals/minimal-apis), a simplified approach for building fast web APIs with minimal code and configuration by fluently declaring API routes and actions. -[!INCLUDE[](~/includes/benefits.md)] +:::moniker-end -## Build web APIs and web UI using ASP.NET Core MVC +:::moniker range=">= aspnetcore-3.0 < aspnetcore-6.0" -ASP.NET Core MVC provides features to build [web APIs](xref:tutorials/first-web-api) and [web apps](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro): +* [Blazor](xref:blazor/index), a component-based web UI framework based on C# that supports both server-side rendering via the .NET runtime and client-side rendering via WebAssembly. +* [Razor Pages](xref:razor-pages/index), a page-based programming model that makes building web UI easier and more productive. +* [Model-View-Controller (MVC)](xref:mvc/overview), a traditional framework for building web apps and web APIs using the [Model-View-Controller design pattern](https://developer.mozilla.org/docs/Glossary/MVC). -* The [Model-View-Controller (MVC) pattern](xref:mvc/overview) helps make your web APIs and web apps testable. -* [Blazor](xref:blazor/index), a component-based web UI framework based on C# that supports both server-side rendering and client-side rendering via WebAssembly. -* [Razor Pages](xref:razor-pages/index) is a page-based programming model that makes building web UI easier and more productive. -* [Razor markup](xref:mvc/views/razor) provides a productive syntax for [Razor Pages](xref:razor-pages/index) and [MVC views](xref:mvc/views/overview). -* [Tag Helpers](xref:mvc/views/tag-helpers/intro) enable server-side code to participate in creating and rendering HTML elements in Razor files. -* Built-in support for [multiple data formats and content negotiation](xref:web-api/advanced/formatting) lets your web APIs reach a broad range of clients, including browsers and mobile devices. -* [Model binding](xref:mvc/models/model-binding) automatically maps data from HTTP requests to action method parameters. -* [Model validation](xref:mvc/models/validation) automatically performs client-side and server-side validation. +:::moniker-end -## Client-side development +:::moniker range="< aspnetcore-3.0" -ASP.NET Core includes [Blazor](xref:blazor/index) for building richly interactive web UI, and also integrates with other popular frontend JavaScript frameworks like [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). For more information, see and related topics under *Client-side development*. +* [Razor Pages](xref:razor-pages/index), a page-based programming model that makes building web UI easier and more productive. +* [Model-View-Controller (MVC)](xref:mvc/overview), a traditional framework for building web apps and web APIs using the [Model-View-Controller design pattern](https://developer.mozilla.org/docs/Glossary/MVC). - +:::moniker-end ## ASP.NET Core target frameworks @@ -55,195 +47,97 @@ ASP.NET Core 3.x or later can only target .NET. There are several advantages to targeting .NET, and these advantages increase with each release. Some advantages of .NET over .NET Framework include: -* Cross-platform. Runs on Windows, macOS, and Linux. +* Cross-platform on Windows, macOS, and Linux * Improved performance * [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#side-by-side-net-versions-per-application-level) * New APIs * Open source -## Recommended learning path - -We recommend the following sequence of tutorials for an introduction to developing ASP.NET Core apps: - -1. Follow a tutorial for the app type you want to develop or maintain. - - |App type |Scenario |Tutorial | - |----------|----------|----------| - |Web app | Client-side web UI development |[Get started with Blazor](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro) | - |Web app | New server-side web UI development |[Get started with Razor Pages](xref:tutorials/razor-pages/razor-pages-start) | - |Web app | Maintaining an MVC app |[Get started with MVC](xref:tutorials/first-mvc-app/start-mvc)| - |Web API | RESTful HTTP services |[Create a web API](xref:tutorials/first-web-api)† | - |Remote Procedure Call app | Contract-first services using Protocol Buffers |[Get started with a gRPC service](xref:tutorials/grpc/grpc-start) | - |Real-time app | Bidirectional communication between servers and connected clients |[Get started with SignalR](xref:tutorials/signalr) | - -1. Follow a tutorial that shows how to do basic data access. - - |Scenario |Tutorial | - |----------|----------| - |New development |[Blazor with Entity Framework Core](xref:blazor/tutorials/movie-database-app/index) | - |New development |[Razor Pages with Entity Framework Core](xref:data/ef-rp/intro) | - |Maintaining an MVC app |[MVC with Entity Framework Core](xref:data/ef-mvc/intro) | - -1. Read an overview of ASP.NET Core [fundamentals](xref:fundamentals/index) that apply to all app types. - -1. Browse the table of contents for other topics of interest. - -†There's also an [interactive web API tutorial](/training/modules/build-web-api-net-core). No local installation of development tools is required. The code runs in an [Azure Cloud Shell](https://azure.microsoft.com/features/cloud-shell/) in your browser, and [curl](https://curl.haxx.se/) is used for testing. - -## Migrate from .NET Framework - -For a reference guide to migrating ASP.NET 4.x apps to ASP.NET Core, see . - -:::moniker-end - -:::moniker range="< aspnetcore-3.0" - -ASP.NET Core is a cross-platform, high-performance, [open-source](https://github.com/dotnet/aspnetcore) framework for building modern, cloud-enabled, Internet-connected apps. With ASP.NET Core, you can: - -* Build web apps and services, [Azure IoT (Internet of Things)](https://azure.microsoft.com/solutions/iot) apps, and mobile backends. -* Use your favorite development tools on Windows, macOS, and Linux. -* Deploy to the cloud or on-premises. -* Run on [.NET Core or .NET Framework](/dotnet/articles/standard/choosing-core-framework-server). - -## Why choose ASP.NET Core? - -Millions of developers use or have used [ASP.NET 4.x](/aspnet/overview) to create web apps. ASP.NET Core is a redesign of ASP.NET 4.x, with architectural changes that result in a leaner, more modular framework. - -[!INCLUDE[](~/includes/benefits.md)] - -## Build web APIs and web UI using ASP.NET Core MVC - -ASP.NET Core MVC provides features to build [web APIs](xref:tutorials/first-web-api) and [web apps](xref:tutorials/razor-pages/index): - -* The [Model-View-Controller (MVC) pattern](xref:mvc/overview) helps make your web APIs and web apps testable. -* [Razor Pages](xref:razor-pages/index) is a page-based programming model that makes building web UI easier and more productive. -* [Razor markup](xref:mvc/views/razor) provides a productive syntax for [Razor Pages](xref:razor-pages/index) and [MVC views](xref:mvc/views/overview). -* [Tag Helpers](xref:mvc/views/tag-helpers/intro) enable server-side code to participate in creating and rendering HTML elements in Razor files. -* Built-in support for [multiple data formats and content negotiation](xref:web-api/advanced/formatting) lets your web APIs reach a broad range of clients, including browsers and mobile devices. -* [Model binding](xref:mvc/models/model-binding) automatically maps data from HTTP requests to action method parameters. -* [Model validation](xref:mvc/models/validation) automatically performs client-side and server-side validation. - -## Client-side development - -ASP.NET Core integrates seamlessly with popular client-side frameworks and libraries, including [Blazor](xref:blazor/index), [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). For more information, see and related topics under *Client-side development*. - - - -## ASP.NET Core targeting .NET Framework - -ASP.NET Core 2.x can target .NET Core or .NET Framework. ASP.NET Core apps targeting .NET Framework aren't cross-platform—they run on Windows only. Generally, ASP.NET Core 2.x is made up of [.NET Standard](/dotnet/standard/net-standard) libraries. Libraries written with .NET Standard 2.0 run on any [.NET platform that implements .NET Standard 2.0](/dotnet/standard/net-standard#net-implementation-support). +ASP.NET Core 2.x can target .NET Core or .NET Framework. ASP.NET Core apps targeting .NET Framework aren't cross-platform and only run on Windows. Generally, ASP.NET Core 2.x is made up of [.NET Standard](/dotnet/standard/net-standard) libraries. Libraries written with .NET Standard 2.0 run on any [.NET platform that implements .NET Standard 2.0](/dotnet/standard/net-standard#net-implementation-support). ASP.NET Core 2.x is supported on .NET Framework versions that implement .NET Standard 2.0: * .NET Framework latest version is recommended. * .NET Framework 4.6.1 or later. -ASP.NET Core 3.0 or later only run on .NET Core. For more details regarding this change, see [A first look at changes coming in ASP.NET Core 3.0](https://blogs.msdn.microsoft.com/webdev/2018/10/29/a-first-look-at-changes-coming-in-asp-net-core-3-0/). - -There are several advantages to targeting .NET Core, and these advantages increase with each release. Some advantages of .NET Core over .NET Framework include: - -* Cross-platform. Runs on macOS, Linux, and Windows. -* Improved performance -* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#side-by-side-net-versions-per-application-level) -* New APIs -* Open source - -To help close the API gap from .NET Framework to .NET Core, the [Windows Compatibility Pack](/dotnet/core/porting/windows-compat-pack) made thousands of Windows-only APIs available in .NET Core. These APIs weren't available in .NET Core 1.x. +To help close the API gap from .NET Framework to .NET Core 2.x, the [Windows Compatibility Pack](/dotnet/core/porting/windows-compat-pack) made thousands of Windows-only APIs available. These APIs weren't available in .NET Core 1.x. ## Recommended learning path -We recommend the following sequence of tutorials and articles for an introduction to developing ASP.NET Core apps: - -1. Follow a tutorial for the type of app you want to develop or maintain. - - |App type |Scenario |Tutorial | - |----------|----------|----------| - |Web app | For new development |[Get started with Razor Pages](xref:tutorials/razor-pages/razor-pages-start) | - |Web app | For maintaining an MVC app |[Get started with MVC](xref:tutorials/first-mvc-app/start-mvc)| - |Web API | |[Create a web API](xref:tutorials/first-web-api)† | - |Real-time app | |[Get started with SignalR](xref:tutorials/signalr) | +We recommend the following sequence of tutorials for an introduction to developing ASP.NET Core apps, or select the appropriate tutorial for the type of app that you know you want to develop. -1. Follow a tutorial that shows how to do basic data access. +Our tutorial for new developers and developers new to .NET is . - |Scenario |Tutorial | - |----------|----------| - | For new development |[Razor Pages with Entity Framework Core](xref:data/ef-rp/intro) | - | For maintaining an MVC app |[MVC with Entity Framework Core](xref:data/ef-mvc/intro) | +:::moniker range=">= aspnetcore-6.0" -1. Read an overview of ASP.NET Core [fundamentals](xref:fundamentals/index) that apply to all app types. - -1. Browse the Table of Contents for other topics of interest. - -†There's also a [web API tutorial that you follow entirely in the browser](/training/modules/build-web-api-net-core), no local IDE installation required. The code runs in an [Azure Cloud Shell](https://azure.microsoft.com/features/cloud-shell/), and [curl](https://curl.haxx.se/) is used for testing. - -## Migrate from .NET Framework - -For a reference guide to migrating ASP.NET apps to ASP.NET Core, see . +App type | Scenario | Tutorial +-------- | -------- | -------- +Web app | New server and client web development with Blazor - ***Recommended*** | [Build your first web app with ASP.NET Core using Blazor (Interactive Online Learn Module)](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro) or [Build your first web app with Blazor (Visual Studio or Visual Studio Code)](/training/modules/build-your-first-blazor-web-app/) +Web app | New server-side web development with Razor Pages | +Web app | New server-side web development with MVC | +Web API | Server-based data processing with Minimal APIs - ***Recommended*** | and [Build a web API with minimal API, ASP.NET Core, and .NET (.NET SDK)](/training/modules/build-web-api-minimal-api/) +Remote Procedure Call (RPC) app | Contract-first services using Protocol Buffers | +Real-time app | Server/client bidirectional communication | :::moniker-end -## How to download a sample - -Many of the articles and tutorials include links to sample code. +:::moniker range=">= aspnetcore-3.0 < aspnetcore-6.0" -1. [Download the ASP.NET repository zip file](https://codeload.github.com/dotnet/AspNetCore.Docs/zip/main). -1. Unzip the `AspNetCore.Docs-main.zip` file. -1. To access an article's sample app in the unzipped repository, use the URL in the article's sample link to help you navigate to the sample's folder. Usually, an article's sample link appears at the top of the article with the link text *View or download sample code*. +App type | Scenario | Tutorial +-------- | -------- | -------- +Web app | New server and client web development with Blazor - ***Recommended*** | [Build your first web app with ASP.NET Core using Blazor (Interactive Online Learn Module)](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro) or [Build your first web app with Blazor (Visual Studio or Visual Studio Code)](/training/modules/build-your-first-blazor-web-app/) +Web app | New server-side web development with Razor Pages | +Web app | New server-side web development with MVC | +Web API | Server-based data processing | and [Create a web API with ASP.NET Core controllers (.NET SDK)](/training/modules/build-web-api-aspnet-core/) +Remote Procedure Call (RPC) app | Contract-first services using Protocol Buffers | +Real-time app | Server/client bidirectional communication | -### Preprocessor directives in sample code +:::moniker-end -To demonstrate multiple scenarios, sample apps use the `#define` and `#if-#else/#elif-#endif` preprocessor directives to selectively compile and run different sections of sample code. For those samples that make use of this approach, set the `#define` directive at the top of the C# files to define the symbol associated with the scenario that you want to run. Some samples require defining the symbol at the top of multiple files in order to run a scenario. +:::moniker range="< aspnetcore-3.0" -For example, the following `#define` symbol list indicates that four scenarios are available (one scenario per symbol). The current sample configuration runs the `TemplateCode` scenario: +App type | Scenario | Tutorial +-------- | -------- | -------- +Web app | New web development | +Web app | New server-side web development with MVC | +Web API | Server-based data processing | and [Create a web API with ASP.NET Core controllers (.NET SDK)](/training/modules/build-web-api-aspnet-core/) +Real-time app | Server/client bidirectional communication | -```csharp -#define TemplateCode // or LogFromMain or ExpandDefault or FilterInCode -``` +:::moniker-end -To change the sample to run the `ExpandDefault` scenario, define the `ExpandDefault` symbol and leave the remaining symbols commented-out: +The tutorials in the following table teach data access concepts. -```csharp -#define ExpandDefault // TemplateCode or LogFromMain or FilterInCode -``` +:::moniker range=">= aspnetcore-3.0" -For more information on using [C# preprocessor directives](/dotnet/csharp/language-reference/preprocessor-directives/) to selectively compile sections of code, see [#define (C# Reference)](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-define) and [#if (C# Reference)](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-if). +Scenario | Tutorial +-------- | -------- +New development with Blazor | +New development with Razor Pages | +New development with MVC | - +For a reference guide on migrating ASP.NET 4.x apps to ASP.NET Core, see . ## Breaking changes and security advisories [!INCLUDE[](~/includes/announcements.md)] -## Next steps - -For more information, see the following resources: +## .NET Live TV -* [Get started with Blazor](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro) -* -* -* [ASP.NET Core fundamentals](xref:fundamentals/index) -* [The weekly ASP.NET community standup](https://live.asp.net/) covers the team's progress and plans. It features new blogs and third-party software. +[.NET Live TV](https://dotnet.microsoft.com/live) covers the .NET team's progress and plans. It features new blogs and third-party software. diff --git a/aspnetcore/release-notes/aspnetcore-1.1.md b/aspnetcore/release-notes/aspnetcore-1.1.md index e74f5791cc4a..d2a56cfafa70 100644 --- a/aspnetcore/release-notes/aspnetcore-1.1.md +++ b/aspnetcore/release-notes/aspnetcore-1.1.md @@ -29,4 +29,4 @@ ASP.NET Core 1.1 has more features than ASP.NET Core 1.0. In general, we recomme ## Additional Information * [ASP.NET Core 1.1.0 Release Notes](https://github.com/dotnet/aspnetcore/releases/tag/1.1.0) -* To connect with the ASP.NET Core development team's progress and plans, tune in to the [ASP.NET Community Standup](https://live.asp.net/). +* To connect with the ASP.NET Core development team's progress and plans, tune in to [.NET Live TV](https://live.asp.net/). diff --git a/aspnetcore/release-notes/aspnetcore-2.0.md b/aspnetcore/release-notes/aspnetcore-2.0.md index 3350f81e8492..40125386d512 100644 --- a/aspnetcore/release-notes/aspnetcore-2.0.md +++ b/aspnetcore/release-notes/aspnetcore-2.0.md @@ -153,4 +153,4 @@ For guidance on how to migrate ASP.NET Core 1.x applications to ASP.NET Core 2.0 For the complete list of changes, see the [ASP.NET Core 2.0 Release Notes](https://github.com/dotnet/aspnetcore/releases/tag/2.0.0). -To connect with the ASP.NET Core development team's progress and plans, tune in to the [ASP.NET Community Standup](https://live.asp.net/). +To connect with the ASP.NET Core development team's progress and plans, tune in to [.NET Live TV](https://dotnet.microsoft.com/live). diff --git a/cspell.json b/cspell.json index 594f84f0a120..8fd0c98044cc 100644 --- a/cspell.json +++ b/cspell.json @@ -43,6 +43,7 @@ "routable", "Routable", "signalr", + "tdykstra", "typeof", "wadepickett", "wasm", @@ -51,6 +52,7 @@ "webforms", "websocket", "websockets", + "wpickett", "wwwroot" ], "flagWords": [ From 337c7d55765ce1456a2475873ff6663ca6ffb7a8 Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Thu, 24 Jul 2025 09:40:23 -0400 Subject: [PATCH 12/18] Updates --- aspnetcore/includes/benefits.md | 22 ++-- aspnetcore/introduction-to-aspnet-core.md | 134 ++++++++++++++++++++-- 2 files changed, 137 insertions(+), 19 deletions(-) diff --git a/aspnetcore/includes/benefits.md b/aspnetcore/includes/benefits.md index 4262a7d1791b..df4bbdc8178e 100644 --- a/aspnetcore/includes/benefits.md +++ b/aspnetcore/includes/benefits.md @@ -2,11 +2,12 @@ ASP.NET Core provides the following benefits: :::moniker range=">= aspnetcore-6.0" - + * A unified story for building web apps, web APIs, Azure IoT (Internet of Things) apps, and mobile backends. * Architected for testability. -* [Blazor](xref:blazor/index) lets you create rich interactive client-side UIs using [.NET](/dotnet/standard/tour)/[C#](/dotnet/csharp/) with wide browser support based on HTML/JavaScript, including mobile browsers. You can also build hybrid desktop and mobile apps with .NET and Blazor. +* [Blazor](xref:blazor/index) lets you create rich interactive client-side UIs using [.NET](/dotnet/standard/tour) and [C#](/dotnet/csharp/) with wide browser support based on HTML/JavaScript, including mobile browsers. You can also build hybrid desktop and mobile apps with .NET and Blazor. * [Minimal APIs](xref:fundamentals/minimal-apis) are a simplified approach for building fast web APIs with minimal code and configuration by fluently declaring API routes and actions. * Supports [Razor Pages](xref:razor-pages/index) and [Model-View-Controller (MVC)](xref:mvc/overview) app development. * Ability to develop and run on Windows, macOS, and Linux. @@ -18,18 +19,21 @@ ASP.NET Core provides the following benefits: * A lightweight, [high-performance](https://github.com/aspnet/benchmarks), and modular HTTP request pipeline. * Ability to host in the cloud or on-premises with the following: * [Kestrel](xref:fundamentals/servers/kestrel) + * [Azure App Service](https://azure.microsoft.com/products/app-service) * [IIS](xref:host-and-deploy/iis/index) * [HTTP.sys](xref:fundamentals/servers/httpsys) * [Nginx](xref:host-and-deploy/linux-nginx) * [Docker](xref:host-and-deploy/docker/index) -* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#side-by-side-net-versions-per-application-level). +* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#choose-net). * Tooling that simplifies modern web development. :::moniker-end :::moniker range=">= aspnetcore-3.0 < aspnetcore-6.0" - + * A unified story for building web apps, web APIs, Azure IoT (Internet of Things) apps, and mobile backends. * Architected for testability. @@ -44,20 +48,23 @@ ASP.NET Core provides the following benefits: * A lightweight, [high-performance](https://github.com/aspnet/benchmarks), and modular HTTP request pipeline. * Ability to host in the cloud or on-premises with the following: * [Kestrel](xref:fundamentals/servers/kestrel) + * [Azure App Service](https://azure.microsoft.com/products/app-service) * [IIS](xref:host-and-deploy/iis/index) * [HTTP.sys](xref:fundamentals/servers/httpsys) * [Nginx](xref:host-and-deploy/linux-nginx) * [Docker](xref:host-and-deploy/docker/index) -* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#side-by-side-net-versions-per-application-level). +* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#choose-net). * Tooling that simplifies modern web development. :::moniker-end :::moniker range="< aspnetcore-3.0" + + * A unified story for building web apps, web APIs, Azure IoT (Internet of Things) apps, and mobile backends. * Architected for testability. -* Supports [Razor Pages](xref:razor-pages/index) and [Model-View-Controller (MVC)](xref:mvc/overview) app development. +* Develop apps and APIs using [Razor Pages](xref:razor-pages/index) and [Model-View-Controller (MVC)](xref:mvc/overview) frameworks. * Ability to develop and run on Windows, macOS, and Linux. * Open-source and [community-focused](https://live.asp.net/). * Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). @@ -67,11 +74,12 @@ ASP.NET Core provides the following benefits: * A lightweight, [high-performance](https://github.com/aspnet/benchmarks), and modular HTTP request pipeline. * Ability to host in the cloud or on-premises with the following: * [Kestrel](xref:fundamentals/servers/kestrel) + * [Azure App Service](https://azure.microsoft.com/products/app-service) * [IIS](xref:host-and-deploy/iis/index) * [HTTP.sys](xref:fundamentals/servers/httpsys) * [Nginx](xref:host-and-deploy/linux-nginx) * [Docker](xref:host-and-deploy/docker/index) -* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#side-by-side-net-versions-per-application-level). +* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#choose-net). * Tooling that simplifies modern web development. :::moniker-end diff --git a/aspnetcore/introduction-to-aspnet-core.md b/aspnetcore/introduction-to-aspnet-core.md index d837e93fc90f..f3ce822a1f59 100644 --- a/aspnetcore/introduction-to-aspnet-core.md +++ b/aspnetcore/introduction-to-aspnet-core.md @@ -11,7 +11,7 @@ uid: index [!INCLUDE[](~/includes/not-latest-version.md)] -ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern web apps. It is built for large-scale app development and can handle any size workload, making it a robust choice for enterprise-level apps. +ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern web apps. The framework is built for large-scale app development and can handle any size workload, making it a robust choice for enterprise-level apps. [!INCLUDE[](~/includes/benefits.md)] @@ -49,11 +49,11 @@ There are several advantages to targeting .NET, and these advantages increase wi * Cross-platform on Windows, macOS, and Linux * Improved performance -* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#side-by-side-net-versions-per-application-level) +* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#choose-net) * New APIs * Open source -ASP.NET Core 2.x can target .NET Core or .NET Framework. ASP.NET Core apps targeting .NET Framework aren't cross-platform and only run on Windows. Generally, ASP.NET Core 2.x is made up of [.NET Standard](/dotnet/standard/net-standard) libraries. Libraries written with .NET Standard 2.0 run on any [.NET platform that implements .NET Standard 2.0](/dotnet/standard/net-standard#net-implementation-support). +ASP.NET Core 2.x can target .NET Core or .NET Framework. ASP.NET Core apps targeting .NET Framework aren't cross-platform and only run on Windows. Generally, ASP.NET Core 2.x is made up of [.NET Standard](/dotnet/standard/net-standard) libraries. Libraries written with .NET Standard 2.0 run on any [.NET platform that implements .NET Standard 2.0](/dotnet/standard/net-standard?tabs=net-standard-2-0#net-standard-versions). ASP.NET Core 2.x is supported on .NET Framework versions that implement .NET Standard 2.0: @@ -62,22 +62,27 @@ ASP.NET Core 2.x is supported on .NET Framework versions that implement .NET Sta To help close the API gap from .NET Framework to .NET Core 2.x, the [Windows Compatibility Pack](/dotnet/core/porting/windows-compat-pack) made thousands of Windows-only APIs available. These APIs weren't available in .NET Core 1.x. -## Recommended learning path +## Recommended learning path (TABLES LAYOUT OPTION) -We recommend the following sequence of tutorials for an introduction to developing ASP.NET Core apps, or select the appropriate tutorial for the type of app that you know you want to develop. + -Our tutorial for new developers and developers new to .NET is . +We recommend the following sequence of tutorials for an introduction to developing ASP.NET Core apps, or select the appropriate tutorial for a particular type of app that you want to build. + +Our tutorial for new developers and developers new to .NET is . :::moniker range=">= aspnetcore-6.0" + + App type | Scenario | Tutorial -------- | -------- | -------- -Web app | New server and client web development with Blazor - ***Recommended*** | [Build your first web app with ASP.NET Core using Blazor (Interactive Online Learn Module)](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro) or [Build your first web app with Blazor (Visual Studio or Visual Studio Code)](/training/modules/build-your-first-blazor-web-app/) -Web app | New server-side web development with Razor Pages | -Web app | New server-side web development with MVC | -Web API | Server-based data processing with Minimal APIs - ***Recommended*** | and [Build a web API with minimal API, ASP.NET Core, and .NET (.NET SDK)](/training/modules/build-web-api-minimal-api/) +Web app | New server and client web development with Blazor – ***Recommended*** | [Build your first web app with ASP.NET Core using Blazor (Interactive Online Learn Module)](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro) or [Build your first web app with Blazor (Visual Studio or Visual Studio Code)](/training/modules/build-your-first-blazor-web-app/) +Web API | Server-based data processing with Minimal APIs – ***Recommended*** | and [Build a web API with minimal API, ASP.NET Core, and .NET (.NET SDK)](/training/modules/build-web-api-minimal-api/) Remote Procedure Call (RPC) app | Contract-first services using Protocol Buffers | Real-time app | Server/client bidirectional communication | +Web app | New server-side web development with Razor Pages | +Web app | New server-side web development with MVC | :::moniker-end @@ -130,6 +135,108 @@ See the [ASP.NET Core fundamentals articles](xref:fundamentals/index), which app Browse the table of contents for other topics of interest. +## Recommended learning path (SUBHEADING LAYOUT OPTION) + + + +We recommend the following sequence of tutorials for an introduction to developing ASP.NET Core apps, or select the appropriate tutorial for a particular type of app that you want to build. + +Our tutorial for new developers and developers moving to .NET from other app development frameworks is . + +:::moniker range=">= aspnetcore-6.0" + +### Web apps + +* Interactive Online Learn Module: [Build your first web app with ASP.NET Core using Blazor](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro) +* Using [Visual Studio](https://visualstudio.microsoft.com/) or [Visual Studio Code](https://code.visualstudio.com/): [Build your first web app with Blazor](/training/modules/build-your-first-blazor-web-app/) + +### Web API apps + +* Using Visual Studio or Visual Studio Code: +* Using the .NET SDK: [Build a web API with minimal API, ASP.NET Core, and .NET](/training/modules/build-web-api-minimal-api/) + +### Remote Procedure Call (RPC) apps + + + +### Real-time, server/client bidirectional communication apps + + + +### Additional scenarios + +* +* + +:::moniker-end + +:::moniker range=">= aspnetcore-3.0 < aspnetcore-6.0" + +### Web apps + +* Interactive Online Learn Module: [Build your first web app with ASP.NET Core using Blazor](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro) +* Using Visual Studio or Visual Studio Code: [Build your first web app with Blazor](/training/modules/build-your-first-blazor-web-app/) + +### Web API apps + +* Using Visual Studio or Visual Studio Code: +* Using the .NET SDK: [Create a web API with ASP.NET Core controllers](/training/modules/build-web-api-aspnet-core/) + +### Remote Procedure Call (RPC) apps + + + +### Real-time, server/client bidirectional communication apps + + + +### Additional scenarios + +* +* + +:::moniker-end + +:::moniker range="< aspnetcore-3.0" + +### Web apps + +* +* + +### Web API apps + +* Using Visual Studio or Visual Studio Code: +* Using the .NET SDK: [Create a web API with ASP.NET Core controllers](/training/modules/build-web-api-aspnet-core/) + +### Real-time, server/client bidirectional communication apps + + + +:::moniker-end + +### Data access concepts + +:::moniker range=">= aspnetcore-3.0" + +* +* +* + +:::moniker-end + +:::moniker range="< aspnetcore-3.0" + +* +* + +:::moniker-end + +See the [ASP.NET Core fundamentals articles](xref:fundamentals/index), which apply to all app types. + +Browse the table of contents for other topics of interest. + ## Migrate from .NET Framework For a reference guide on migrating ASP.NET 4.x apps to ASP.NET Core, see . @@ -138,6 +245,9 @@ For a reference guide on migrating ASP.NET 4.x apps to ASP.NET Core, see Date: Thu, 24 Jul 2025 10:04:52 -0400 Subject: [PATCH 13/18] Update aspnetcore/release-notes/aspnetcore-1.1.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- aspnetcore/release-notes/aspnetcore-1.1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aspnetcore/release-notes/aspnetcore-1.1.md b/aspnetcore/release-notes/aspnetcore-1.1.md index d2a56cfafa70..2ff8495afb15 100644 --- a/aspnetcore/release-notes/aspnetcore-1.1.md +++ b/aspnetcore/release-notes/aspnetcore-1.1.md @@ -29,4 +29,4 @@ ASP.NET Core 1.1 has more features than ASP.NET Core 1.0. In general, we recomme ## Additional Information * [ASP.NET Core 1.1.0 Release Notes](https://github.com/dotnet/aspnetcore/releases/tag/1.1.0) -* To connect with the ASP.NET Core development team's progress and plans, tune in to [.NET Live TV](https://live.asp.net/). +* To connect with the ASP.NET Core development team's progress and plans, tune in to [.NET Live TV](https://dotnet.microsoft.com/live). From b213bd91f128ea22f0af6ae3f12c2d21d9adeeb8 Mon Sep 17 00:00:00 2001 From: Luke Latham <1622880+guardrex@users.noreply.github.com> Date: Fri, 25 Jul 2025 05:52:06 -0400 Subject: [PATCH 14/18] Apply suggestions from code review Co-authored-by: Daniel Roth --- aspnetcore/fundamentals/minimal-apis/overview.md | 2 +- aspnetcore/includes/benefits.md | 13 +++++++------ aspnetcore/introduction-to-aspnet-core.md | 15 ++------------- aspnetcore/release-notes/aspnetcore-1.1.md | 2 +- aspnetcore/release-notes/aspnetcore-2.0.md | 2 +- 5 files changed, 12 insertions(+), 22 deletions(-) diff --git a/aspnetcore/fundamentals/minimal-apis/overview.md b/aspnetcore/fundamentals/minimal-apis/overview.md index 55eed08eac1b..1deb5a32a181 100644 --- a/aspnetcore/fundamentals/minimal-apis/overview.md +++ b/aspnetcore/fundamentals/minimal-apis/overview.md @@ -11,7 +11,7 @@ uid: fundamentals/minimal-apis/overview [!INCLUDE[](~/includes/not-latest-version.md)] -Minimal APIs are a simplified approach for building fast HTTP APIs with ASP.NET Core. You can build fully functioning REST endpoints with minimal code and configuration. Skip traditional scaffolding and avoid unnecessary controllers by fluently declaring API routes and actions. For example, the following code creates an API at the root of a web app that returns a greeting: +Minimal APIs are a simplified approach for building fast HTTP APIs with ASP.NET Core. You can build fully functioning REST endpoints with minimal code and configuration. For example, the following code creates an API at the root of a web app that returns a greeting: ```csharp var app = WebApplication.Create(args); diff --git a/aspnetcore/includes/benefits.md b/aspnetcore/includes/benefits.md index df4bbdc8178e..1d63d1c80ba0 100644 --- a/aspnetcore/includes/benefits.md +++ b/aspnetcore/includes/benefits.md @@ -5,15 +5,16 @@ ASP.NET Core provides the following benefits: -* A unified story for building web apps, web APIs, Azure IoT (Internet of Things) apps, and mobile backends. +* A unified story for building web apps, web APIs, IoT (Internet of Things) apps, and mobile backends. * Architected for testability. -* [Blazor](xref:blazor/index) lets you create rich interactive client-side UIs using [.NET](/dotnet/standard/tour) and [C#](/dotnet/csharp/) with wide browser support based on HTML/JavaScript, including mobile browsers. You can also build hybrid desktop and mobile apps with .NET and Blazor. -* [Minimal APIs](xref:fundamentals/minimal-apis) are a simplified approach for building fast web APIs with minimal code and configuration by fluently declaring API routes and actions. -* Supports [Razor Pages](xref:razor-pages/index) and [Model-View-Controller (MVC)](xref:mvc/overview) app development. +* Create rich interactive web UI with [Blazor](xref:blazor/index) using [C#](/dotnet/csharp/)—no JavaScript required. Reuse your Blazor components to build native mobile and desktop apps with [Blazor Hybrid](xref:blazor/hybrid/index). +* [Minimal APIs](xref:fundamentals/minimal-apis) are a simplified approach for building fast web APIs with minimal code and configuration by fluently declaring API routes and endpoints. * Ability to develop and run on Windows, macOS, and Linux. -* Open-source and [community-focused](https://live.asp.net/). +* Open-source and [community-focused](https://dotnet.microsoft.com/platform/community). * Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). -* Support for hosting Remote Procedure Call (RPC) services using [gRPC](xref:grpc/index). +* Add real-time web functionality to apps using [SignalR](xref:signalr/index). +* Support for hosting Remote Procedure Call (RPC) services using [gRPC](xref:grpc/introduction). +* Built-in security features for [authentication](xref:security/authentication/index) and [authorization](xref:security/authorization/introduction). * A cloud-ready, environment-based [configuration system](xref:fundamentals/configuration/index). * Built-in [dependency injection](xref:fundamentals/dependency-injection). * A lightweight, [high-performance](https://github.com/aspnet/benchmarks), and modular HTTP request pipeline. diff --git a/aspnetcore/introduction-to-aspnet-core.md b/aspnetcore/introduction-to-aspnet-core.md index f3ce822a1f59..ef2c45ba1db4 100644 --- a/aspnetcore/introduction-to-aspnet-core.md +++ b/aspnetcore/introduction-to-aspnet-core.md @@ -21,7 +21,7 @@ Use ASP.NET Core to build web apps with: :::moniker range=">= aspnetcore-6.0" -* [Blazor](xref:blazor/index), a component-based web UI framework based on C# that supports both server-side rendering via the .NET runtime and client-side rendering via WebAssembly. +* [Blazor](xref:blazor/index), a component-based web UI framework based on C# that supports both server-side rendering and client-side rendering via WebAssembly. * [Minimal APIs](xref:fundamentals/minimal-apis), a simplified approach for building fast web APIs with minimal code and configuration by fluently declaring API routes and actions. :::moniker-end @@ -62,7 +62,7 @@ ASP.NET Core 2.x is supported on .NET Framework versions that implement .NET Sta To help close the API gap from .NET Framework to .NET Core 2.x, the [Windows Compatibility Pack](/dotnet/core/porting/windows-compat-pack) made thousands of Windows-only APIs available. These APIs weren't available in .NET Core 1.x. -## Recommended learning path (TABLES LAYOUT OPTION) +## Tutorials to get started @@ -81,8 +81,6 @@ Web app | New server and client web development with Blazor – ***Recommend Web API | Server-based data processing with Minimal APIs – ***Recommended*** | and [Build a web API with minimal API, ASP.NET Core, and .NET (.NET SDK)](/training/modules/build-web-api-minimal-api/) Remote Procedure Call (RPC) app | Contract-first services using Protocol Buffers | Real-time app | Server/client bidirectional communication | -Web app | New server-side web development with Razor Pages | -Web app | New server-side web development with MVC | :::moniker-end @@ -117,8 +115,6 @@ The tutorials in the following table teach data access concepts. Scenario | Tutorial -------- | -------- New development with Blazor | -New development with Razor Pages | -New development with MVC | :::moniker-end @@ -237,13 +233,6 @@ See the [ASP.NET Core fundamentals articles](xref:fundamentals/index), which app Browse the table of contents for other topics of interest. -## Migrate from .NET Framework - -For a reference guide on migrating ASP.NET 4.x apps to ASP.NET Core, see . - -## Breaking changes and security advisories - -[!INCLUDE[](~/includes/announcements.md)] ## Additional resources diff --git a/aspnetcore/release-notes/aspnetcore-1.1.md b/aspnetcore/release-notes/aspnetcore-1.1.md index 2ff8495afb15..077a55c043c8 100644 --- a/aspnetcore/release-notes/aspnetcore-1.1.md +++ b/aspnetcore/release-notes/aspnetcore-1.1.md @@ -29,4 +29,4 @@ ASP.NET Core 1.1 has more features than ASP.NET Core 1.0. In general, we recomme ## Additional Information * [ASP.NET Core 1.1.0 Release Notes](https://github.com/dotnet/aspnetcore/releases/tag/1.1.0) -* To connect with the ASP.NET Core development team's progress and plans, tune in to [.NET Live TV](https://dotnet.microsoft.com/live). +* To connect with the ASP.NET Core development team's progress and plans, tune in to [.NET Live TV](https://live.dot.net). diff --git a/aspnetcore/release-notes/aspnetcore-2.0.md b/aspnetcore/release-notes/aspnetcore-2.0.md index 40125386d512..bc154f02c1bb 100644 --- a/aspnetcore/release-notes/aspnetcore-2.0.md +++ b/aspnetcore/release-notes/aspnetcore-2.0.md @@ -153,4 +153,4 @@ For guidance on how to migrate ASP.NET Core 1.x applications to ASP.NET Core 2.0 For the complete list of changes, see the [ASP.NET Core 2.0 Release Notes](https://github.com/dotnet/aspnetcore/releases/tag/2.0.0). -To connect with the ASP.NET Core development team's progress and plans, tune in to [.NET Live TV](https://dotnet.microsoft.com/live). +To connect with the ASP.NET Core development team's progress and plans, tune in to [.NET Live TV](https://live.dot.net). From 837fa4933e2e61109a8dbe227994b4cf61c8ba99 Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Fri, 25 Jul 2025 06:42:12 -0400 Subject: [PATCH 15/18] Updates --- .../fundamentals/choose-aspnet-framework.md | 2 +- aspnetcore/fundamentals/index.md | 108 +++++----- .../fundamentals/index/includes/index3-7.md | 52 +++++ .../fundamentals/index/includes/index8.md | 54 ++++- aspnetcore/includes/benefits.md | 86 -------- aspnetcore/includes/key-features.md | 53 +++++ aspnetcore/introduction-to-aspnet-core.md | 191 ++++-------------- 7 files changed, 253 insertions(+), 293 deletions(-) delete mode 100644 aspnetcore/includes/benefits.md create mode 100644 aspnetcore/includes/key-features.md diff --git a/aspnetcore/fundamentals/choose-aspnet-framework.md b/aspnetcore/fundamentals/choose-aspnet-framework.md index 9dcec25a2ecc..6ca939d73fdb 100644 --- a/aspnetcore/fundamentals/choose-aspnet-framework.md +++ b/aspnetcore/fundamentals/choose-aspnet-framework.md @@ -15,7 +15,7 @@ ASP.NET Core is a redesign of ASP.NET 4.x. This article lists the differences be ASP.NET Core is an open-source, cross-platform framework for building modern, cloud-based web apps on Windows, macOS, or Linux. -[!INCLUDE[](~/includes/benefits.md)] +[!INCLUDE[](~/includes/key-features.md)] ## ASP.NET 4.x diff --git a/aspnetcore/fundamentals/index.md b/aspnetcore/fundamentals/index.md index 845b1a024b4e..3b1dcb3956c5 100644 --- a/aspnetcore/fundamentals/index.md +++ b/aspnetcore/fundamentals/index.md @@ -18,59 +18,7 @@ This article provides an overview of the fundamentals for building ASP.NET Core For Blazor fundamentals guidance, which adds to or supersedes the guidance in this article, see . -## How to download a sample - -Many of the articles and tutorials include links to sample code. - -1. [Download the ASP.NET repository zip file](https://codeload.github.com/dotnet/AspNetCore.Docs/zip/main). -1. Unzip the `AspNetCore.Docs-main.zip` file. -1. To access an article's sample app in the unzipped repository, use the URL in the article's sample link to help you navigate to the sample's folder. Usually, an article's sample link appears at the top of the article with the link text *View or download sample code*. - -### Preprocessor directives in sample code - -To demonstrate multiple scenarios, sample apps use the `#define` and `#if-#else/#elif-#endif` preprocessor directives to selectively compile and run different sections of sample code. For those samples that make use of this approach, set the `#define` directive at the top of the C# files to define the symbol associated with the scenario that you want to run. Some samples require defining the symbol at the top of multiple files in order to run a scenario. - -For example, the following `#define` symbol list indicates that four scenarios are available (one scenario per symbol). The current sample configuration runs the `TemplateCode` scenario: - -```csharp -#define TemplateCode // or LogFromMain or ExpandDefault or FilterInCode -``` - -To change the sample to run the `ExpandDefault` scenario, define the `ExpandDefault` symbol and leave the remaining symbols commented-out: - -```csharp -#define ExpandDefault // TemplateCode or LogFromMain or FilterInCode -``` - -For more information on using [C# preprocessor directives](/dotnet/csharp/language-reference/preprocessor-directives/) to selectively compile sections of code, see [#define (C# Reference)](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-define) and [#if (C# Reference)](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-if). - -### Regions in sample code - -Some sample apps contain sections of code surrounded by [#region](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-region) and [#endregion](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-endregion) C# directives. The documentation build system injects these regions into the rendered documentation topics. - -Region names usually contain the word "snippet." The following example shows a region named `snippet_WebHostDefaults`: - -```csharp -#region snippet_WebHostDefaults -Host.CreateDefaultBuilder(args) - .ConfigureWebHostDefaults(webBuilder => - { - webBuilder.UseStartup(); - }); -#endregion -``` - -The preceding C# code snippet is referenced in the topic's markdown file with the following line: - -```md -[!code-csharp[](sample/SampleApp/Program.cs?name=snippet_WebHostDefaults)] -``` - -You may safely ignore or remove the `#region` and `#endregion` directives that surround the code. Don't alter the code within these directives if you plan to run the sample scenarios described in the topic. - -For more information, see [Contribute to the ASP.NET documentation: Code snippets](https://github.com/dotnet/AspNetCore.Docs/blob/main/CONTRIBUTING.md#code-snippets). - -## Program.cs +## `Program.cs` ASP.NET Core apps created with the web templates contain the application startup code in the `Program.cs` file. The `Program.cs` file is where: @@ -288,9 +236,61 @@ In Razor `.cshtml` files, `~/` points to the web root. A path beginning with `~/ For more information, see . +## How to download a sample + +Many of the articles and tutorials include links to sample code. + +1. [Download the ASP.NET repository zip file](https://codeload.github.com/dotnet/AspNetCore.Docs/zip/main). +1. Unzip the `AspNetCore.Docs-main.zip` file. +1. To access an article's sample app in the unzipped repository, use the URL in the article's sample link to help you navigate to the sample's folder. Usually, an article's sample link appears at the top of the article with the link text *View or download sample code*. + +### Preprocessor directives in sample code + +To demonstrate multiple scenarios, sample apps use the `#define` and `#if-#else/#elif-#endif` preprocessor directives to selectively compile and run different sections of sample code. For those samples that make use of this approach, set the `#define` directive at the top of the C# files to define the symbol associated with the scenario that you want to run. Some samples require defining the symbol at the top of multiple files in order to run a scenario. + +For example, the following `#define` symbol list indicates that four scenarios are available (one scenario per symbol). The current sample configuration runs the `TemplateCode` scenario: + +```csharp +#define TemplateCode // or LogFromMain or ExpandDefault or FilterInCode +``` + +To change the sample to run the `ExpandDefault` scenario, define the `ExpandDefault` symbol and leave the remaining symbols commented-out: + +```csharp +#define ExpandDefault // TemplateCode or LogFromMain or FilterInCode +``` + +For more information on using [C# preprocessor directives](/dotnet/csharp/language-reference/preprocessor-directives/) to selectively compile sections of code, see [#define (C# Reference)](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-define) and [#if (C# Reference)](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-if). + +### Regions in sample code + +Some sample apps contain sections of code surrounded by [#region](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-region) and [#endregion](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-endregion) C# directives. The documentation build system injects these regions into the rendered documentation topics. + +Region names usually contain the word "snippet." The following example shows a region named `snippet_WebHostDefaults`: + +```csharp +#region snippet_WebHostDefaults +Host.CreateDefaultBuilder(args) + .ConfigureWebHostDefaults(webBuilder => + { + webBuilder.UseStartup(); + }); +#endregion +``` + +The preceding C# code snippet is referenced in the topic's markdown file with the following line: + +```md +[!code-csharp[](sample/SampleApp/Program.cs?name=snippet_WebHostDefaults)] +``` + +You may safely ignore or remove the `#region` and `#endregion` directives that surround the code. Don't alter the code within these directives if you plan to run the sample scenarios described in the topic. + +For more information, see [Contribute to the ASP.NET documentation: Code snippets](https://github.com/dotnet/AspNetCore.Docs/blob/main/CONTRIBUTING.md#code-snippets). + ## Additional resources -* + :::moniker-end diff --git a/aspnetcore/fundamentals/index/includes/index3-7.md b/aspnetcore/fundamentals/index/includes/index3-7.md index df58aa68f580..e76ef0ef77ed 100644 --- a/aspnetcore/fundamentals/index/includes/index3-7.md +++ b/aspnetcore/fundamentals/index/includes/index3-7.md @@ -428,4 +428,56 @@ In Razor `.cshtml` files, tilde-slash (`~/`) points to the web root. A path begi For more information, see . +## How to download a sample + +Many of the articles and tutorials include links to sample code. + +1. [Download the ASP.NET repository zip file](https://codeload.github.com/dotnet/AspNetCore.Docs/zip/main). +1. Unzip the `AspNetCore.Docs-main.zip` file. +1. To access an article's sample app in the unzipped repository, use the URL in the article's sample link to help you navigate to the sample's folder. Usually, an article's sample link appears at the top of the article with the link text *View or download sample code*. + +### Preprocessor directives in sample code + +To demonstrate multiple scenarios, sample apps use the `#define` and `#if-#else/#elif-#endif` preprocessor directives to selectively compile and run different sections of sample code. For those samples that make use of this approach, set the `#define` directive at the top of the C# files to define the symbol associated with the scenario that you want to run. Some samples require defining the symbol at the top of multiple files in order to run a scenario. + +For example, the following `#define` symbol list indicates that four scenarios are available (one scenario per symbol). The current sample configuration runs the `TemplateCode` scenario: + +```csharp +#define TemplateCode // or LogFromMain or ExpandDefault or FilterInCode +``` + +To change the sample to run the `ExpandDefault` scenario, define the `ExpandDefault` symbol and leave the remaining symbols commented-out: + +```csharp +#define ExpandDefault // TemplateCode or LogFromMain or FilterInCode +``` + +For more information on using [C# preprocessor directives](/dotnet/csharp/language-reference/preprocessor-directives/) to selectively compile sections of code, see [#define (C# Reference)](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-define) and [#if (C# Reference)](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-if). + +### Regions in sample code + +Some sample apps contain sections of code surrounded by [#region](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-region) and [#endregion](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-endregion) C# directives. The documentation build system injects these regions into the rendered documentation topics. + +Region names usually contain the word "snippet." The following example shows a region named `snippet_WebHostDefaults`: + +```csharp +#region snippet_WebHostDefaults +Host.CreateDefaultBuilder(args) + .ConfigureWebHostDefaults(webBuilder => + { + webBuilder.UseStartup(); + }); +#endregion +``` + +The preceding C# code snippet is referenced in the topic's markdown file with the following line: + +```md +[!code-csharp[](sample/SampleApp/Program.cs?name=snippet_WebHostDefaults)] +``` + +You may safely ignore or remove the `#region` and `#endregion` directives that surround the code. Don't alter the code within these directives if you plan to run the sample scenarios described in the topic. + +For more information, see [Contribute to the ASP.NET documentation: Code snippets](https://github.com/dotnet/AspNetCore.Docs/blob/main/CONTRIBUTING.md#code-snippets). + :::moniker-end diff --git a/aspnetcore/fundamentals/index/includes/index8.md b/aspnetcore/fundamentals/index/includes/index8.md index 65566ba02b6b..2620f1b7f9f4 100644 --- a/aspnetcore/fundamentals/index/includes/index8.md +++ b/aspnetcore/fundamentals/index/includes/index8.md @@ -211,8 +211,60 @@ In Razor `.cshtml` files, `~/` points to the web root. A path beginning with `~/ For more information, see . +## How to download a sample + +Many of the articles and tutorials include links to sample code. + +1. [Download the ASP.NET repository zip file](https://codeload.github.com/dotnet/AspNetCore.Docs/zip/main). +1. Unzip the `AspNetCore.Docs-main.zip` file. +1. To access an article's sample app in the unzipped repository, use the URL in the article's sample link to help you navigate to the sample's folder. Usually, an article's sample link appears at the top of the article with the link text *View or download sample code*. + +### Preprocessor directives in sample code + +To demonstrate multiple scenarios, sample apps use the `#define` and `#if-#else/#elif-#endif` preprocessor directives to selectively compile and run different sections of sample code. For those samples that make use of this approach, set the `#define` directive at the top of the C# files to define the symbol associated with the scenario that you want to run. Some samples require defining the symbol at the top of multiple files in order to run a scenario. + +For example, the following `#define` symbol list indicates that four scenarios are available (one scenario per symbol). The current sample configuration runs the `TemplateCode` scenario: + +```csharp +#define TemplateCode // or LogFromMain or ExpandDefault or FilterInCode +``` + +To change the sample to run the `ExpandDefault` scenario, define the `ExpandDefault` symbol and leave the remaining symbols commented-out: + +```csharp +#define ExpandDefault // TemplateCode or LogFromMain or FilterInCode +``` + +For more information on using [C# preprocessor directives](/dotnet/csharp/language-reference/preprocessor-directives/) to selectively compile sections of code, see [#define (C# Reference)](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-define) and [#if (C# Reference)](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-if). + +### Regions in sample code + +Some sample apps contain sections of code surrounded by [#region](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-region) and [#endregion](/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-endregion) C# directives. The documentation build system injects these regions into the rendered documentation topics. + +Region names usually contain the word "snippet." The following example shows a region named `snippet_WebHostDefaults`: + +```csharp +#region snippet_WebHostDefaults +Host.CreateDefaultBuilder(args) + .ConfigureWebHostDefaults(webBuilder => + { + webBuilder.UseStartup(); + }); +#endregion +``` + +The preceding C# code snippet is referenced in the topic's markdown file with the following line: + +```md +[!code-csharp[](sample/SampleApp/Program.cs?name=snippet_WebHostDefaults)] +``` + +You may safely ignore or remove the `#region` and `#endregion` directives that surround the code. Don't alter the code within these directives if you plan to run the sample scenarios described in the topic. + +For more information, see [Contribute to the ASP.NET documentation: Code snippets](https://github.com/dotnet/AspNetCore.Docs/blob/main/CONTRIBUTING.md#code-snippets). + ## Additional resources -* [WebApplicationBuilder source code](https://github.com/dotnet/aspnetcore/blob/v6.0.1/src/DefaultBuilder/src/WebApplicationBuilder.cs) +[WebApplicationBuilder source code](https://github.com/dotnet/aspnetcore/blob/v6.0.1/src/DefaultBuilder/src/WebApplicationBuilder.cs) :::moniker-end diff --git a/aspnetcore/includes/benefits.md b/aspnetcore/includes/benefits.md deleted file mode 100644 index 1d63d1c80ba0..000000000000 --- a/aspnetcore/includes/benefits.md +++ /dev/null @@ -1,86 +0,0 @@ -ASP.NET Core provides the following benefits: - -:::moniker range=">= aspnetcore-6.0" - - - -* A unified story for building web apps, web APIs, IoT (Internet of Things) apps, and mobile backends. -* Architected for testability. -* Create rich interactive web UI with [Blazor](xref:blazor/index) using [C#](/dotnet/csharp/)—no JavaScript required. Reuse your Blazor components to build native mobile and desktop apps with [Blazor Hybrid](xref:blazor/hybrid/index). -* [Minimal APIs](xref:fundamentals/minimal-apis) are a simplified approach for building fast web APIs with minimal code and configuration by fluently declaring API routes and endpoints. -* Ability to develop and run on Windows, macOS, and Linux. -* Open-source and [community-focused](https://dotnet.microsoft.com/platform/community). -* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). -* Add real-time web functionality to apps using [SignalR](xref:signalr/index). -* Support for hosting Remote Procedure Call (RPC) services using [gRPC](xref:grpc/introduction). -* Built-in security features for [authentication](xref:security/authentication/index) and [authorization](xref:security/authorization/introduction). -* A cloud-ready, environment-based [configuration system](xref:fundamentals/configuration/index). -* Built-in [dependency injection](xref:fundamentals/dependency-injection). -* A lightweight, [high-performance](https://github.com/aspnet/benchmarks), and modular HTTP request pipeline. -* Ability to host in the cloud or on-premises with the following: - * [Kestrel](xref:fundamentals/servers/kestrel) - * [Azure App Service](https://azure.microsoft.com/products/app-service) - * [IIS](xref:host-and-deploy/iis/index) - * [HTTP.sys](xref:fundamentals/servers/httpsys) - * [Nginx](xref:host-and-deploy/linux-nginx) - * [Docker](xref:host-and-deploy/docker/index) -* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#choose-net). -* Tooling that simplifies modern web development. - -:::moniker-end - -:::moniker range=">= aspnetcore-3.0 < aspnetcore-6.0" - - - -* A unified story for building web apps, web APIs, Azure IoT (Internet of Things) apps, and mobile backends. -* Architected for testability. -* [Blazor](xref:blazor/index) lets you create rich interactive client-side UIs using [.NET](/dotnet/standard/tour)/[C#](/dotnet/csharp/) with wide browser support based on HTML/JavaScript, including mobile browsers. You can also build hybrid desktop and mobile apps with .NET and Blazor. -* Supports [Razor Pages](xref:razor-pages/index) and [Model-View-Controller (MVC)](xref:mvc/overview) app development. -* Ability to develop and run on Windows, macOS, and Linux. -* Open-source and [community-focused](https://live.asp.net/). -* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). -* Support for hosting Remote Procedure Call (RPC) services using [gRPC](xref:grpc/index). -* A cloud-ready, environment-based [configuration system](xref:fundamentals/configuration/index). -* Built-in [dependency injection](xref:fundamentals/dependency-injection). -* A lightweight, [high-performance](https://github.com/aspnet/benchmarks), and modular HTTP request pipeline. -* Ability to host in the cloud or on-premises with the following: - * [Kestrel](xref:fundamentals/servers/kestrel) - * [Azure App Service](https://azure.microsoft.com/products/app-service) - * [IIS](xref:host-and-deploy/iis/index) - * [HTTP.sys](xref:fundamentals/servers/httpsys) - * [Nginx](xref:host-and-deploy/linux-nginx) - * [Docker](xref:host-and-deploy/docker/index) -* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#choose-net). -* Tooling that simplifies modern web development. - -:::moniker-end - -:::moniker range="< aspnetcore-3.0" - - - -* A unified story for building web apps, web APIs, Azure IoT (Internet of Things) apps, and mobile backends. -* Architected for testability. -* Develop apps and APIs using [Razor Pages](xref:razor-pages/index) and [Model-View-Controller (MVC)](xref:mvc/overview) frameworks. -* Ability to develop and run on Windows, macOS, and Linux. -* Open-source and [community-focused](https://live.asp.net/). -* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). -* Support for hosting Remote Procedure Call (RPC) services using [gRPC](xref:grpc/index). -* A cloud-ready, environment-based [configuration system](xref:fundamentals/configuration/index). -* Built-in [dependency injection](xref:fundamentals/dependency-injection). -* A lightweight, [high-performance](https://github.com/aspnet/benchmarks), and modular HTTP request pipeline. -* Ability to host in the cloud or on-premises with the following: - * [Kestrel](xref:fundamentals/servers/kestrel) - * [Azure App Service](https://azure.microsoft.com/products/app-service) - * [IIS](xref:host-and-deploy/iis/index) - * [HTTP.sys](xref:fundamentals/servers/httpsys) - * [Nginx](xref:host-and-deploy/linux-nginx) - * [Docker](xref:host-and-deploy/docker/index) -* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#choose-net). -* Tooling that simplifies modern web development. - -:::moniker-end diff --git a/aspnetcore/includes/key-features.md b/aspnetcore/includes/key-features.md new file mode 100644 index 000000000000..5df72255e4ca --- /dev/null +++ b/aspnetcore/includes/key-features.md @@ -0,0 +1,53 @@ +Key features: + +:::moniker range=">= aspnetcore-6.0" + +* Lightweight and modular HTTP request pipeline. +* [Kestrel](xref:fundamentals/servers/kestrel): A [high-performance](https://github.com/aspnet/benchmarks) and cross-platform HTTP server. +* Integrated [dependency injection](xref:fundamentals/dependency-injection). +* [Environment-based configuration](xref:fundamentals/configuration/index). +* Rich logging, tracing, and runtime metrics. +* [Blazor](xref:blazor/index): Create rich interactive web UI components using [C#](/dotnet/csharp/)—no JavaScript required. +* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). +* [Minimal APIs](xref:fundamentals/minimal-apis): Build fast web APIs with minimal code and configuration by fluently declaring API routes and endpoints. +* [SignalR](xref:signalr/index): Add real-time web functionality. +* [gRPC](xref:grpc/index): High performance Remote Procedure Call (RPC) services. +* Security: Built-in security features for [authentication](xref:security/authentication/index), [authorization](xref:security/authorization/introduction), and [data protection](xref:security/data-protection/introduction). +* Testing: Easily create unit and integration tests. +* Tooling: Maximize your development productivity with [Visual Studio](https://visualstudio.microsoft.com/) and [Visual Studio Code](https://code.visualstudio.com/). + +:::moniker-end + +:::moniker range=">= aspnetcore-3.0 < aspnetcore-6.0" + +* Lightweight and modular HTTP request pipeline. +* [Kestrel](xref:fundamentals/servers/kestrel): A [high-performance](https://github.com/aspnet/benchmarks) and cross-platform HTTP server. +* Integrated [dependency injection](xref:fundamentals/dependency-injection). +* [Environment-based configuration](xref:fundamentals/configuration/index). +* Rich logging, tracing, and runtime metrics. +* [Blazor](xref:blazor/index): Create rich interactive web UI components using [C#](/dotnet/csharp/)—no JavaScript required. +* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). +* [SignalR](xref:signalr/index): Add real-time web functionality. +* [gRPC](xref:grpc/introduction): High performance Remote Procedure Call (RPC) services. +* Security: Built-in security features for [authentication](xref:security/authentication/index), [authorization](xref:security/authorization/introduction), and [data protection](xref:security/data-protection/introduction). +* Testing: Easily create unit and integration tests. +* Tooling: Maximize your development productivity with [Visual Studio](https://visualstudio.microsoft.com/) and [Visual Studio Code](https://code.visualstudio.com/). + +:::moniker-end + +:::moniker range="< aspnetcore-3.0" + +* Lightweight and modular HTTP request pipeline. +* [Kestrel](xref:fundamentals/servers/kestrel): A [high-performance](https://github.com/aspnet/benchmarks) and cross-platform HTTP server. +* Integrated [dependency injection](xref:fundamentals/dependency-injection). +* [Environment-based configuration](xref:fundamentals/configuration/index). +* Rich logging, tracing, and runtime metrics. +* Develop apps and APIs using [Razor Pages](xref:razor-pages/index) and [Model-View-Controller (MVC)](xref:mvc/overview) frameworks. +* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). +* [SignalR](xref:signalr/index): Add real-time web functionality. +* [gRPC](xref:grpc/introduction): High performance Remote Procedure Call (RPC) services. +* Security: Built-in security features for [authentication](xref:security/authentication/index), [authorization](xref:security/authorization/introduction), and [data protection](xref:security/data-protection/introduction). +* Testing: Easily create unit and integration tests. +* Tooling: Maximize your development productivity with [Visual Studio](https://visualstudio.microsoft.com/) and [Visual Studio Code](https://code.visualstudio.com/). + +:::moniker-end diff --git a/aspnetcore/introduction-to-aspnet-core.md b/aspnetcore/introduction-to-aspnet-core.md index ef2c45ba1db4..cdba6e32c269 100644 --- a/aspnetcore/introduction-to-aspnet-core.md +++ b/aspnetcore/introduction-to-aspnet-core.md @@ -4,7 +4,7 @@ author: tdykstra description: Get an overview of ASP.NET Core, a cross-platform, high-performance, open-source framework for building modern, cloud-enabled, Internet-connected apps. ms.author: tdykstra ms.custom: mvc -ms.date: 07/23/2025 +ms.date: 07/25/2025 uid: index --- # Overview of ASP.NET Core @@ -13,67 +13,66 @@ uid: index ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern web apps. The framework is built for large-scale app development and can handle any size workload, making it a robust choice for enterprise-level apps. -[!INCLUDE[](~/includes/benefits.md)] +[!INCLUDE[](~/includes/key-features.md)] -## Build web apps and web APIs +## Why choose ASP.NET Core? (OPTION 1: COLLAPSED BULLET LIST) -Use ASP.NET Core to build web apps with: +* **Unified framework**: ASP.NET Core is a complete and fully integrated web framework with built-in production-ready components to handle all of your web development needs. +* **Full stack productivity**: Build more apps faster by enabling your team to work full stack, from the frontend to the backend, using a single development framework. +* **Secure by design**: ASP.NET Core is built with security as a top concern and includes built-in support for authentication, authorization, and data protection. +* **Cloud-ready**: Whether you're deploying to your own data centers or to the cloud, ASP.NET Core simplifies deployment, monitoring, and configuration. +* **Performance & scalability**: Handle the most demanding workloads with ASP.NET Core's industry leading performance. +* **Trusted and mature**: ASP.NET Core is used and proven at hyperscale by some of the largest services in the world, including Bing, Xbox, Microsoft 365, and Azure. -:::moniker range=">= aspnetcore-6.0" +## Why choose ASP.NET Core? (OPTION 2: SPACED BULLET LIST) -* [Blazor](xref:blazor/index), a component-based web UI framework based on C# that supports both server-side rendering and client-side rendering via WebAssembly. -* [Minimal APIs](xref:fundamentals/minimal-apis), a simplified approach for building fast web APIs with minimal code and configuration by fluently declaring API routes and actions. +* **Unified framework**: ASP.NET Core is a complete and fully integrated web framework with built-in production-ready components to handle all of your web development needs. -:::moniker-end +* **Full stack productivity**: Build more apps faster by enabling your team to work full stack, from the frontend to the backend, using a single development framework. -:::moniker range=">= aspnetcore-3.0 < aspnetcore-6.0" +* **Secure by design**: ASP.NET Core is built with security as a top concern and includes built-in support for authentication, authorization, and data protection. -* [Blazor](xref:blazor/index), a component-based web UI framework based on C# that supports both server-side rendering via the .NET runtime and client-side rendering via WebAssembly. -* [Razor Pages](xref:razor-pages/index), a page-based programming model that makes building web UI easier and more productive. -* [Model-View-Controller (MVC)](xref:mvc/overview), a traditional framework for building web apps and web APIs using the [Model-View-Controller design pattern](https://developer.mozilla.org/docs/Glossary/MVC). +* **Cloud-ready**: Whether you're deploying to your own data centers or to the cloud, ASP.NET Core simplifies deployment, monitoring, and configuration. -:::moniker-end +* **Performance & scalability**: Handle the most demanding workloads with ASP.NET Core's industry leading performance. -:::moniker range="< aspnetcore-3.0" +* **Trusted and mature**: ASP.NET Core is used and proven at hyperscale by some of the largest services in the world, including Bing, Xbox, Microsoft 365, and Azure. -* [Razor Pages](xref:razor-pages/index), a page-based programming model that makes building web UI easier and more productive. -* [Model-View-Controller (MVC)](xref:mvc/overview), a traditional framework for building web apps and web APIs using the [Model-View-Controller design pattern](https://developer.mozilla.org/docs/Glossary/MVC). +## Why choose ASP.NET Core? (OPTION 3: UNBULLETED LIST WITH ADDL SPACING) -:::moniker-end +**Unified framework** -## ASP.NET Core target frameworks +ASP.NET Core is a complete and fully integrated web framework with built-in production-ready components to handle all of your web development needs. -ASP.NET Core 3.x or later can only target .NET. +**Full stack productivity** -There are several advantages to targeting .NET, and these advantages increase with each release. Some advantages of .NET over .NET Framework include: +Build more apps faster by enabling your team to work full stack, from the frontend to the backend, using a single development framework. -* Cross-platform on Windows, macOS, and Linux -* Improved performance -* [Side-by-side versioning](/dotnet/standard/choosing-core-framework-server#choose-net) -* New APIs -* Open source +**Secure by design** -ASP.NET Core 2.x can target .NET Core or .NET Framework. ASP.NET Core apps targeting .NET Framework aren't cross-platform and only run on Windows. Generally, ASP.NET Core 2.x is made up of [.NET Standard](/dotnet/standard/net-standard) libraries. Libraries written with .NET Standard 2.0 run on any [.NET platform that implements .NET Standard 2.0](/dotnet/standard/net-standard?tabs=net-standard-2-0#net-standard-versions). +ASP.NET Core is built with security as a top concern and includes built-in support for authentication, authorization, and data protection. -ASP.NET Core 2.x is supported on .NET Framework versions that implement .NET Standard 2.0: +**Cloud-ready** -* .NET Framework latest version is recommended. -* .NET Framework 4.6.1 or later. +Whether you're deploying to your own data centers or to the cloud, ASP.NET Core simplifies deployment, monitoring, and configuration. -To help close the API gap from .NET Framework to .NET Core 2.x, the [Windows Compatibility Pack](/dotnet/core/porting/windows-compat-pack) made thousands of Windows-only APIs available. These APIs weren't available in .NET Core 1.x. +**Performance & scalability** -## Tutorials to get started +Handle the most demanding workloads with ASP.NET Core's industry leading performance. - +**Trusted and mature** -We recommend the following sequence of tutorials for an introduction to developing ASP.NET Core apps, or select the appropriate tutorial for a particular type of app that you want to build. +ASP.NET Core is used and proven at hyperscale by some of the largest services in the world, including Bing, Xbox, Microsoft 365, and Azure. + +## Tutorials to get started Our tutorial for new developers and developers new to .NET is . -:::moniker range=">= aspnetcore-6.0" +Once you've completed the *Get started* tutorial, we recommend reading the [ASP.NET Core fundamentals](xref:fundamentals/index) article, which covers the basics of ASP.NET Core. - +Next, experience ASP.NET Core in action with our other tutorials. You can use each tutorial in the order shown, or you can select a specific tutorial if you know in advance the type of app that you plan to build. + +:::moniker range=">= aspnetcore-6.0" App type | Scenario | Tutorial -------- | -------- | -------- @@ -89,8 +88,6 @@ Real-time app | Server/client bidirectional communication | -Web app | New server-side web development with MVC | Web API | Server-based data processing | and [Create a web API with ASP.NET Core controllers (.NET SDK)](/training/modules/build-web-api-aspnet-core/) Remote Procedure Call (RPC) app | Contract-first services using Protocol Buffers | Real-time app | Server/client bidirectional communication | @@ -108,18 +105,16 @@ Real-time app | Server/client bidirectional communication | +To learn about data access concepts, see . :::moniker-end :::moniker range="< aspnetcore-3.0" +The tutorials in the following table teach data access concepts. + Scenario | Tutorial -------- | -------- New development with Razor Pages | @@ -127,116 +122,10 @@ New development with MVC | :::moniker-end -See the [ASP.NET Core fundamentals articles](xref:fundamentals/index), which apply to all app types. - -Browse the table of contents for other topics of interest. - -## Recommended learning path (SUBHEADING LAYOUT OPTION) - - - -We recommend the following sequence of tutorials for an introduction to developing ASP.NET Core apps, or select the appropriate tutorial for a particular type of app that you want to build. - -Our tutorial for new developers and developers moving to .NET from other app development frameworks is . - -:::moniker range=">= aspnetcore-6.0" - -### Web apps - -* Interactive Online Learn Module: [Build your first web app with ASP.NET Core using Blazor](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro) -* Using [Visual Studio](https://visualstudio.microsoft.com/) or [Visual Studio Code](https://code.visualstudio.com/): [Build your first web app with Blazor](/training/modules/build-your-first-blazor-web-app/) - -### Web API apps - -* Using Visual Studio or Visual Studio Code: -* Using the .NET SDK: [Build a web API with minimal API, ASP.NET Core, and .NET](/training/modules/build-web-api-minimal-api/) - -### Remote Procedure Call (RPC) apps - - - -### Real-time, server/client bidirectional communication apps - - - -### Additional scenarios - -* -* - -:::moniker-end - -:::moniker range=">= aspnetcore-3.0 < aspnetcore-6.0" - -### Web apps - -* Interactive Online Learn Module: [Build your first web app with ASP.NET Core using Blazor](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro) -* Using Visual Studio or Visual Studio Code: [Build your first web app with Blazor](/training/modules/build-your-first-blazor-web-app/) - -### Web API apps - -* Using Visual Studio or Visual Studio Code: -* Using the .NET SDK: [Create a web API with ASP.NET Core controllers](/training/modules/build-web-api-aspnet-core/) - -### Remote Procedure Call (RPC) apps - - - -### Real-time, server/client bidirectional communication apps - - - -### Additional scenarios - -* -* - -:::moniker-end - -:::moniker range="< aspnetcore-3.0" - -### Web apps - -* -* - -### Web API apps - -* Using Visual Studio or Visual Studio Code: -* Using the .NET SDK: [Create a web API with ASP.NET Core controllers](/training/modules/build-web-api-aspnet-core/) - -### Real-time, server/client bidirectional communication apps - - - -:::moniker-end - -### Data access concepts - -:::moniker range=">= aspnetcore-3.0" - -* -* -* - -:::moniker-end - -:::moniker range="< aspnetcore-3.0" - -* -* - -:::moniker-end - -See the [ASP.NET Core fundamentals articles](xref:fundamentals/index), which apply to all app types. - -Browse the table of contents for other topics of interest. - - ## Additional resources * [Download .NET](https://dotnet.microsoft.com/download) * [Visual Studio](https://visualstudio.microsoft.com/) * [Visual Studio Code](https://code.visualstudio.com/) -* [.NET Live TV](https://dotnet.microsoft.com/live) +* [.NET Developer Community](https://dotnet.microsoft.com/platform/community) +* [.NET Live TV](https://live.dot.net) From 7545f83fdeb0fcc8b1886b080f6ff87a94e8e895 Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Fri, 25 Jul 2025 06:48:49 -0400 Subject: [PATCH 16/18] Updates --- aspnetcore/fundamentals/choose-aspnet-framework.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/aspnetcore/fundamentals/choose-aspnet-framework.md b/aspnetcore/fundamentals/choose-aspnet-framework.md index 6ca939d73fdb..b63f31bf92ab 100644 --- a/aspnetcore/fundamentals/choose-aspnet-framework.md +++ b/aspnetcore/fundamentals/choose-aspnet-framework.md @@ -34,8 +34,6 @@ The following table compares ASP.NET Core to ASP.NET 4.x. |Higher performance than ASP.NET 4.x|Good performance| |[Use the latest .NET runtime](/dotnet/standard/choosing-core-framework-server)|Use .NET Framework runtime| -See [ASP.NET Core targeting .NET Framework](xref:index#aspnet-core-target-frameworks) for information on ASP.NET Core 2.x support on .NET Framework. - ## ASP.NET Core scenarios * [Websites](xref:tutorials/first-mvc-app/start-mvc) From 9293773fb3e1d46fb4a7eddcbe6a568d8ebf1df4 Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Fri, 25 Jul 2025 06:53:16 -0400 Subject: [PATCH 17/18] Updates --- aspnetcore/includes/key-features.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/aspnetcore/includes/key-features.md b/aspnetcore/includes/key-features.md index 5df72255e4ca..c1a600c3f8e6 100644 --- a/aspnetcore/includes/key-features.md +++ b/aspnetcore/includes/key-features.md @@ -28,7 +28,7 @@ Key features: * [Blazor](xref:blazor/index): Create rich interactive web UI components using [C#](/dotnet/csharp/)—no JavaScript required. * Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). * [SignalR](xref:signalr/index): Add real-time web functionality. -* [gRPC](xref:grpc/introduction): High performance Remote Procedure Call (RPC) services. +* [gRPC](xref:grpc/index): High performance Remote Procedure Call (RPC) services. * Security: Built-in security features for [authentication](xref:security/authentication/index), [authorization](xref:security/authorization/introduction), and [data protection](xref:security/data-protection/introduction). * Testing: Easily create unit and integration tests. * Tooling: Maximize your development productivity with [Visual Studio](https://visualstudio.microsoft.com/) and [Visual Studio Code](https://code.visualstudio.com/). @@ -45,7 +45,7 @@ Key features: * Develop apps and APIs using [Razor Pages](xref:razor-pages/index) and [Model-View-Controller (MVC)](xref:mvc/overview) frameworks. * Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). * [SignalR](xref:signalr/index): Add real-time web functionality. -* [gRPC](xref:grpc/introduction): High performance Remote Procedure Call (RPC) services. +* [gRPC](xref:grpc/index): High performance Remote Procedure Call (RPC) services. * Security: Built-in security features for [authentication](xref:security/authentication/index), [authorization](xref:security/authorization/introduction), and [data protection](xref:security/data-protection/introduction). * Testing: Easily create unit and integration tests. * Tooling: Maximize your development productivity with [Visual Studio](https://visualstudio.microsoft.com/) and [Visual Studio Code](https://code.visualstudio.com/). From 440bfeb442ea12b9b10c321c3fccdec823156037 Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Mon, 28 Jul 2025 08:50:18 -0400 Subject: [PATCH 18/18] Updates --- .openpublishing.redirection.json | 7 +- .../fundamentals/choose-aspnet-framework.md | 55 ------- .../fundamentals/configuration/index.md | 3 +- .../configuration/index/includes/index6.md | 3 +- .../configuration/index/includes/index7.md | 3 +- .../fundamentals/index/includes/index3-7.md | 4 - .../fundamentals/index/includes/index8.md | 4 - aspnetcore/get-started.md | 8 + aspnetcore/includes/key-features.md | 53 ------- aspnetcore/introduction-to-aspnet-core.md | 149 ++++++------------ aspnetcore/performance/caching/middleware.md | 2 +- aspnetcore/security/authentication/cookie.md | 20 +-- aspnetcore/toc.yml | 10 +- 13 files changed, 84 insertions(+), 237 deletions(-) delete mode 100644 aspnetcore/fundamentals/choose-aspnet-framework.md delete mode 100644 aspnetcore/includes/key-features.md diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json index a965b409e8fe..d5be1ca78b52 100644 --- a/.openpublishing.redirection.json +++ b/.openpublishing.redirection.json @@ -762,7 +762,7 @@ }, { "source_path": "aspnetcore/choose-aspnet-framework.md", - "redirect_url": "/aspnet/core/fundamentals/choose-aspnet-framework", + "redirect_url": "/aspnet/core/introduction-to-aspnet-core", "redirect_document_id": false }, { @@ -1572,6 +1572,11 @@ "source_path": "aspnetcore/getting-started/index.md", "redirect_url": "/aspnet/core/get-started", "redirect_document_id": false + }, + { + "source_path": "aspnetcore/fundamentals/choose-aspnet-framework.md", + "redirect_url": "/aspnet/core/introduction-to-aspnet-core", + "redirect_document_id": false } ] } diff --git a/aspnetcore/fundamentals/choose-aspnet-framework.md b/aspnetcore/fundamentals/choose-aspnet-framework.md deleted file mode 100644 index b63f31bf92ab..000000000000 --- a/aspnetcore/fundamentals/choose-aspnet-framework.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: Choose between ASP.NET 4.x and ASP.NET Core -author: tdykstra -description: Explains ASP.NET Core vs. ASP.NET 4.x and how to choose between them. -ms.author: tdykstra -ms.custom: mvc -ms.date: 05/28/2025 -uid: fundamentals/choose-between-aspnet-and-aspnetcore ---- -# Choose between ASP.NET 4.x and ASP.NET Core - -ASP.NET Core is a redesign of ASP.NET 4.x. This article lists the differences between them. - -## ASP.NET Core - -ASP.NET Core is an open-source, cross-platform framework for building modern, cloud-based web apps on Windows, macOS, or Linux. - -[!INCLUDE[](~/includes/key-features.md)] - -## ASP.NET 4.x - -ASP.NET 4.x is a mature framework that provides the services needed to build enterprise-grade, server-based web apps on Windows. - -## Framework selection - -The following table compares ASP.NET Core to ASP.NET 4.x. - -| ASP.NET Core | ASP.NET 4.x | -|---|---| -|Build for Windows, macOS, or Linux|Build for Windows| -|[Razor Pages](xref:razor-pages/index) is the recommended approach to create a Web UI as of ASP.NET Core 2.x. See also [MVC](xref:mvc/overview), [Web API](xref:tutorials/first-web-api), and [SignalR](xref:signalr/introduction).|Use [Web Forms](/aspnet/web-forms), [SignalR](/aspnet/signalr), [MVC](/aspnet/mvc), [Web API](/aspnet/web-api/), [WebHooks](/aspnet/webhooks/), or [Web Pages](/aspnet/web-pages)| -|Multiple versions per machine|One version per machine| -|Develop with [Visual Studio](https://visualstudio.microsoft.com/vs/) or [Visual Studio Code](https://code.visualstudio.com/) using C# or F#|Develop with [Visual Studio](https://visualstudio.microsoft.com/vs/) using C#, VB, or F#| -|Higher performance than ASP.NET 4.x|Good performance| -|[Use the latest .NET runtime](/dotnet/standard/choosing-core-framework-server)|Use .NET Framework runtime| - -## ASP.NET Core scenarios - -* [Websites](xref:tutorials/first-mvc-app/start-mvc) -* [APIs](xref:tutorials/first-web-api) -* [Real-time](xref:signalr/introduction) -* [Deploy an ASP.NET Core app to Azure](/azure/app-service/app-service-web-get-started-dotnet) - -## ASP.NET 4.x scenarios - -* [Websites](/aspnet/mvc) -* [APIs](/aspnet/web-api) -* [Real-time](/aspnet/signalr) -* [Create an ASP.NET 4.x web app in Azure](/azure/app-service/app-service-web-get-started-dotnet-framework) - -## Additional resources - -* [Introduction to ASP.NET](/aspnet/overview) -* [Introduction to ASP.NET Core](xref:index) -* diff --git a/aspnetcore/fundamentals/configuration/index.md b/aspnetcore/fundamentals/configuration/index.md index 840f88e82a20..00cd6a5b0b5d 100644 --- a/aspnetcore/fundamentals/configuration/index.md +++ b/aspnetcore/fundamentals/configuration/index.md @@ -971,11 +971,12 @@ The [Configuration-binding source generator](/dotnet/core/whats-new/dotnet-8/run ## Additional resources * [Configuration source code](https://github.com/dotnet/runtime/tree/main/src/libraries/Microsoft.Extensions.Configuration) -* [WebApplicationBuilder source code](https://github.com/dotnet/aspnetcore/blob/v6.0.1/src/DefaultBuilder/src/WebApplicationBuilder.cs) * [View or download sample code](https://github.com/dotnet/AspNetCore.Docs/tree/main/aspnetcore/fundamentals/configuration/index/samples) ([how to download](xref:index#how-to-download-a-sample)) * * +[!INCLUDE[](~/includes/aspnetcore-repo-ref-source-links.md)] + :::moniker-end [!INCLUDE[](~/fundamentals/configuration/index/includes/index7.md)] diff --git a/aspnetcore/fundamentals/configuration/index/includes/index6.md b/aspnetcore/fundamentals/configuration/index/includes/index6.md index a3c49cc61265..b34211684dd9 100644 --- a/aspnetcore/fundamentals/configuration/index/includes/index6.md +++ b/aspnetcore/fundamentals/configuration/index/includes/index6.md @@ -932,9 +932,10 @@ An implementation allows add ## Additional resources * [Configuration source code](https://github.com/dotnet/runtime/tree/main/src/libraries/Microsoft.Extensions.Configuration) -* [WebApplicationBuilder source code](https://github.com/dotnet/aspnetcore/blob/v6.0.1/src/DefaultBuilder/src/WebApplicationBuilder.cs) * [View or download sample code](https://github.com/dotnet/AspNetCore.Docs/tree/main/aspnetcore/fundamentals/configuration/index/samples) ([how to download](xref:index#how-to-download-a-sample)) * * +[!INCLUDE[](~/includes/aspnetcore-repo-ref-source-links.md)] + :::moniker-end diff --git a/aspnetcore/fundamentals/configuration/index/includes/index7.md b/aspnetcore/fundamentals/configuration/index/includes/index7.md index ead546d6f194..a05f123481c3 100644 --- a/aspnetcore/fundamentals/configuration/index/includes/index7.md +++ b/aspnetcore/fundamentals/configuration/index/includes/index7.md @@ -937,9 +937,10 @@ An implementation allows add ## Additional resources * [Configuration source code](https://github.com/dotnet/runtime/tree/main/src/libraries/Microsoft.Extensions.Configuration) -* [WebApplicationBuilder source code](https://github.com/dotnet/aspnetcore/blob/v6.0.1/src/DefaultBuilder/src/WebApplicationBuilder.cs) * [View or download sample code](https://github.com/dotnet/AspNetCore.Docs/tree/main/aspnetcore/fundamentals/configuration/index/samples) ([how to download](xref:index#how-to-download-a-sample)) * * +[!INCLUDE[](~/includes/aspnetcore-repo-ref-source-links.md)] + :::moniker-end diff --git a/aspnetcore/fundamentals/index/includes/index3-7.md b/aspnetcore/fundamentals/index/includes/index3-7.md index e76ef0ef77ed..820307480f92 100644 --- a/aspnetcore/fundamentals/index/includes/index3-7.md +++ b/aspnetcore/fundamentals/index/includes/index3-7.md @@ -209,10 +209,6 @@ In Razor `.cshtml` files, `~/` points to the web root. A path beginning with `~/ For more information, see . -## Additional resources - -* [WebApplicationBuilder source code](https://github.com/dotnet/aspnetcore/blob/v6.0.1/src/DefaultBuilder/src/WebApplicationBuilder.cs) - :::moniker-end :::moniker range="< aspnetcore-6.0" diff --git a/aspnetcore/fundamentals/index/includes/index8.md b/aspnetcore/fundamentals/index/includes/index8.md index 2620f1b7f9f4..d6987b331482 100644 --- a/aspnetcore/fundamentals/index/includes/index8.md +++ b/aspnetcore/fundamentals/index/includes/index8.md @@ -263,8 +263,4 @@ You may safely ignore or remove the `#region` and `#endregion` directives that s For more information, see [Contribute to the ASP.NET documentation: Code snippets](https://github.com/dotnet/AspNetCore.Docs/blob/main/CONTRIBUTING.md#code-snippets). -## Additional resources - -[WebApplicationBuilder source code](https://github.com/dotnet/aspnetcore/blob/v6.0.1/src/DefaultBuilder/src/WebApplicationBuilder.cs) - :::moniker-end diff --git a/aspnetcore/get-started.md b/aspnetcore/get-started.md index 902589c1f13a..864212be342a 100644 --- a/aspnetcore/get-started.md +++ b/aspnetcore/get-started.md @@ -252,3 +252,11 @@ To learn more about ASP.NET Core, see the following: > [!div class="nextstepaction"] > + +## Additional resources + +* [Introduction to .NET](/dotnet/core/introduction) +* [Visual Studio](https://visualstudio.microsoft.com/) +* [Visual Studio Code](https://code.visualstudio.com/) +* [.NET Developer Community](https://dotnet.microsoft.com/platform/community) +* [.NET Live TV](https://live.dot.net) diff --git a/aspnetcore/includes/key-features.md b/aspnetcore/includes/key-features.md deleted file mode 100644 index c1a600c3f8e6..000000000000 --- a/aspnetcore/includes/key-features.md +++ /dev/null @@ -1,53 +0,0 @@ -Key features: - -:::moniker range=">= aspnetcore-6.0" - -* Lightweight and modular HTTP request pipeline. -* [Kestrel](xref:fundamentals/servers/kestrel): A [high-performance](https://github.com/aspnet/benchmarks) and cross-platform HTTP server. -* Integrated [dependency injection](xref:fundamentals/dependency-injection). -* [Environment-based configuration](xref:fundamentals/configuration/index). -* Rich logging, tracing, and runtime metrics. -* [Blazor](xref:blazor/index): Create rich interactive web UI components using [C#](/dotnet/csharp/)—no JavaScript required. -* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). -* [Minimal APIs](xref:fundamentals/minimal-apis): Build fast web APIs with minimal code and configuration by fluently declaring API routes and endpoints. -* [SignalR](xref:signalr/index): Add real-time web functionality. -* [gRPC](xref:grpc/index): High performance Remote Procedure Call (RPC) services. -* Security: Built-in security features for [authentication](xref:security/authentication/index), [authorization](xref:security/authorization/introduction), and [data protection](xref:security/data-protection/introduction). -* Testing: Easily create unit and integration tests. -* Tooling: Maximize your development productivity with [Visual Studio](https://visualstudio.microsoft.com/) and [Visual Studio Code](https://code.visualstudio.com/). - -:::moniker-end - -:::moniker range=">= aspnetcore-3.0 < aspnetcore-6.0" - -* Lightweight and modular HTTP request pipeline. -* [Kestrel](xref:fundamentals/servers/kestrel): A [high-performance](https://github.com/aspnet/benchmarks) and cross-platform HTTP server. -* Integrated [dependency injection](xref:fundamentals/dependency-injection). -* [Environment-based configuration](xref:fundamentals/configuration/index). -* Rich logging, tracing, and runtime metrics. -* [Blazor](xref:blazor/index): Create rich interactive web UI components using [C#](/dotnet/csharp/)—no JavaScript required. -* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). -* [SignalR](xref:signalr/index): Add real-time web functionality. -* [gRPC](xref:grpc/index): High performance Remote Procedure Call (RPC) services. -* Security: Built-in security features for [authentication](xref:security/authentication/index), [authorization](xref:security/authorization/introduction), and [data protection](xref:security/data-protection/introduction). -* Testing: Easily create unit and integration tests. -* Tooling: Maximize your development productivity with [Visual Studio](https://visualstudio.microsoft.com/) and [Visual Studio Code](https://code.visualstudio.com/). - -:::moniker-end - -:::moniker range="< aspnetcore-3.0" - -* Lightweight and modular HTTP request pipeline. -* [Kestrel](xref:fundamentals/servers/kestrel): A [high-performance](https://github.com/aspnet/benchmarks) and cross-platform HTTP server. -* Integrated [dependency injection](xref:fundamentals/dependency-injection). -* [Environment-based configuration](xref:fundamentals/configuration/index). -* Rich logging, tracing, and runtime metrics. -* Develop apps and APIs using [Razor Pages](xref:razor-pages/index) and [Model-View-Controller (MVC)](xref:mvc/overview) frameworks. -* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). -* [SignalR](xref:signalr/index): Add real-time web functionality. -* [gRPC](xref:grpc/index): High performance Remote Procedure Call (RPC) services. -* Security: Built-in security features for [authentication](xref:security/authentication/index), [authorization](xref:security/authorization/introduction), and [data protection](xref:security/data-protection/introduction). -* Testing: Easily create unit and integration tests. -* Tooling: Maximize your development productivity with [Visual Studio](https://visualstudio.microsoft.com/) and [Visual Studio Code](https://code.visualstudio.com/). - -:::moniker-end diff --git a/aspnetcore/introduction-to-aspnet-core.md b/aspnetcore/introduction-to-aspnet-core.md index cdba6e32c269..eee524639529 100644 --- a/aspnetcore/introduction-to-aspnet-core.md +++ b/aspnetcore/introduction-to-aspnet-core.md @@ -4,128 +4,81 @@ author: tdykstra description: Get an overview of ASP.NET Core, a cross-platform, high-performance, open-source framework for building modern, cloud-enabled, Internet-connected apps. ms.author: tdykstra ms.custom: mvc -ms.date: 07/25/2025 +ms.date: 07/28/2025 uid: index --- # Overview of ASP.NET Core [!INCLUDE[](~/includes/not-latest-version.md)] -ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern web apps. The framework is built for large-scale app development and can handle any size workload, making it a robust choice for enterprise-level apps. +ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern web apps using .NET. The framework is built for large-scale app development and can handle any size workload, making it a robust choice for enterprise-level apps. -[!INCLUDE[](~/includes/key-features.md)] - -## Why choose ASP.NET Core? (OPTION 1: COLLAPSED BULLET LIST) - -* **Unified framework**: ASP.NET Core is a complete and fully integrated web framework with built-in production-ready components to handle all of your web development needs. -* **Full stack productivity**: Build more apps faster by enabling your team to work full stack, from the frontend to the backend, using a single development framework. -* **Secure by design**: ASP.NET Core is built with security as a top concern and includes built-in support for authentication, authorization, and data protection. -* **Cloud-ready**: Whether you're deploying to your own data centers or to the cloud, ASP.NET Core simplifies deployment, monitoring, and configuration. -* **Performance & scalability**: Handle the most demanding workloads with ASP.NET Core's industry leading performance. -* **Trusted and mature**: ASP.NET Core is used and proven at hyperscale by some of the largest services in the world, including Bing, Xbox, Microsoft 365, and Azure. - -## Why choose ASP.NET Core? (OPTION 2: SPACED BULLET LIST) - -* **Unified framework**: ASP.NET Core is a complete and fully integrated web framework with built-in production-ready components to handle all of your web development needs. - -* **Full stack productivity**: Build more apps faster by enabling your team to work full stack, from the frontend to the backend, using a single development framework. - -* **Secure by design**: ASP.NET Core is built with security as a top concern and includes built-in support for authentication, authorization, and data protection. - -* **Cloud-ready**: Whether you're deploying to your own data centers or to the cloud, ASP.NET Core simplifies deployment, monitoring, and configuration. - -* **Performance & scalability**: Handle the most demanding workloads with ASP.NET Core's industry leading performance. - -* **Trusted and mature**: ASP.NET Core is used and proven at hyperscale by some of the largest services in the world, including Bing, Xbox, Microsoft 365, and Azure. - -## Why choose ASP.NET Core? (OPTION 3: UNBULLETED LIST WITH ADDL SPACING) - -**Unified framework** - -ASP.NET Core is a complete and fully integrated web framework with built-in production-ready components to handle all of your web development needs. - -**Full stack productivity** - -Build more apps faster by enabling your team to work full stack, from the frontend to the backend, using a single development framework. - -**Secure by design** - -ASP.NET Core is built with security as a top concern and includes built-in support for authentication, authorization, and data protection. - -**Cloud-ready** - -Whether you're deploying to your own data centers or to the cloud, ASP.NET Core simplifies deployment, monitoring, and configuration. - -**Performance & scalability** - -Handle the most demanding workloads with ASP.NET Core's industry leading performance. - -**Trusted and mature** - -ASP.NET Core is used and proven at hyperscale by some of the largest services in the world, including Bing, Xbox, Microsoft 365, and Azure. - -## Tutorials to get started - -Our tutorial for new developers and developers new to .NET is . - -Once you've completed the *Get started* tutorial, we recommend reading the [ASP.NET Core fundamentals](xref:fundamentals/index) article, which covers the basics of ASP.NET Core. - -Next, experience ASP.NET Core in action with our other tutorials. You can use each tutorial in the order shown, or you can select a specific tutorial if you know in advance the type of app that you plan to build. +Key features: :::moniker range=">= aspnetcore-6.0" -App type | Scenario | Tutorial --------- | -------- | -------- -Web app | New server and client web development with Blazor – ***Recommended*** | [Build your first web app with ASP.NET Core using Blazor (Interactive Online Learn Module)](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro) or [Build your first web app with Blazor (Visual Studio or Visual Studio Code)](/training/modules/build-your-first-blazor-web-app/) -Web API | Server-based data processing with Minimal APIs – ***Recommended*** | and [Build a web API with minimal API, ASP.NET Core, and .NET (.NET SDK)](/training/modules/build-web-api-minimal-api/) -Remote Procedure Call (RPC) app | Contract-first services using Protocol Buffers | -Real-time app | Server/client bidirectional communication | +* Lightweight and modular HTTP request pipeline. +* [Kestrel](xref:fundamentals/servers/kestrel): A [high-performance](https://github.com/aspnet/benchmarks) and cross-platform HTTP server. +* Integrated [dependency injection](xref:fundamentals/dependency-injection). +* [Environment-based configuration](xref:fundamentals/configuration/index). +* Rich logging, tracing, and runtime metrics. +* [Blazor](xref:blazor/index): Create rich interactive web UI components using [C#](/dotnet/csharp/)—no JavaScript required. +* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). +* [Minimal APIs](xref:fundamentals/minimal-apis): Build fast web APIs with minimal code and configuration by fluently declaring API routes and endpoints. +* [SignalR](xref:signalr/index): Add real-time web functionality. +* [gRPC](xref:grpc/index): High performance Remote Procedure Call (RPC) services. +* Security: Built-in security features for [authentication](xref:security/authentication/index), [authorization](xref:security/authorization/introduction), and [data protection](xref:security/data-protection/introduction). +* Testing: Easily create unit and integration tests. +* Tooling: Maximize your development productivity with [Visual Studio](https://visualstudio.microsoft.com/) and [Visual Studio Code](https://code.visualstudio.com/). :::moniker-end :::moniker range=">= aspnetcore-3.0 < aspnetcore-6.0" -App type | Scenario | Tutorial --------- | -------- | -------- -Web app | New server and client web development with Blazor - ***Recommended*** | [Build your first web app with ASP.NET Core using Blazor (Interactive Online Learn Module)](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro) or [Build your first web app with Blazor (Visual Studio or Visual Studio Code)](/training/modules/build-your-first-blazor-web-app/) -Web API | Server-based data processing | and [Create a web API with ASP.NET Core controllers (.NET SDK)](/training/modules/build-web-api-aspnet-core/) -Remote Procedure Call (RPC) app | Contract-first services using Protocol Buffers | -Real-time app | Server/client bidirectional communication | +* Lightweight and modular HTTP request pipeline. +* [Kestrel](xref:fundamentals/servers/kestrel): A [high-performance](https://github.com/aspnet/benchmarks) and cross-platform HTTP server. +* Integrated [dependency injection](xref:fundamentals/dependency-injection). +* [Environment-based configuration](xref:fundamentals/configuration/index). +* Rich logging, tracing, and runtime metrics. +* [Blazor](xref:blazor/index): Create rich interactive web UI components using [C#](/dotnet/csharp/)—no JavaScript required. +* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). +* [SignalR](xref:signalr/index): Add real-time web functionality. +* [gRPC](xref:grpc/index): High performance Remote Procedure Call (RPC) services. +* Security: Built-in security features for [authentication](xref:security/authentication/index), [authorization](xref:security/authorization/introduction), and [data protection](xref:security/data-protection/introduction). +* Testing: Easily create unit and integration tests. +* Tooling: Maximize your development productivity with [Visual Studio](https://visualstudio.microsoft.com/) and [Visual Studio Code](https://code.visualstudio.com/). :::moniker-end :::moniker range="< aspnetcore-3.0" -App type | Scenario | Tutorial --------- | -------- | -------- -Web app | New web development | -Web app | New server-side web development with MVC | -Web API | Server-based data processing | and [Create a web API with ASP.NET Core controllers (.NET SDK)](/training/modules/build-web-api-aspnet-core/) -Real-time app | Server/client bidirectional communication | +* Lightweight and modular HTTP request pipeline. +* [Kestrel](xref:fundamentals/servers/kestrel): A [high-performance](https://github.com/aspnet/benchmarks) and cross-platform HTTP server. +* Integrated [dependency injection](xref:fundamentals/dependency-injection). +* [Environment-based configuration](xref:fundamentals/configuration/index). +* Rich logging, tracing, and runtime metrics. +* Develop apps and APIs using [Razor Pages](xref:razor-pages/index) and [Model-View-Controller (MVC)](xref:mvc/overview) frameworks. +* Integrate seamlessly with popular client-side frameworks and libraries, including [Angular](/visualstudio/javascript/tutorial-asp-net-core-with-angular), [React](/visualstudio/javascript/tutorial-asp-net-core-with-react), [Vue](/visualstudio/javascript/tutorial-asp-net-core-with-vue), and [Bootstrap](https://getbootstrap.com/). +* [SignalR](xref:signalr/index): Add real-time web functionality. +* [gRPC](xref:grpc/index): High performance Remote Procedure Call (RPC) services. +* Security: Built-in security features for [authentication](xref:security/authentication/index), [authorization](xref:security/authorization/introduction), and [data protection](xref:security/data-protection/introduction). +* Testing: Easily create unit and integration tests. +* Tooling: Maximize your development productivity with [Visual Studio](https://visualstudio.microsoft.com/) and [Visual Studio Code](https://code.visualstudio.com/). :::moniker-end -:::moniker range=">= aspnetcore-3.0" - -To learn about data access concepts, see . +## Why choose ASP.NET Core? -:::moniker-end - -:::moniker range="< aspnetcore-3.0" - -The tutorials in the following table teach data access concepts. - -Scenario | Tutorial --------- | -------- -New development with Razor Pages | -New development with MVC | +* **Unified framework**: ASP.NET Core is a complete and fully integrated web framework with built-in production-ready components to handle all of your web development needs. +* **Full stack productivity**: Build more apps faster by enabling your team to work full stack, from the frontend to the backend, using a single development framework. +* **Secure by design**: ASP.NET Core is built with security as a top concern and includes built-in support for authentication, authorization, and data protection. +* **Cloud-ready**: Whether you're deploying to your own data centers or to the cloud, ASP.NET Core simplifies deployment, monitoring, and configuration. +* **Performance & scalability**: Handle the most demanding workloads with ASP.NET Core's industry leading performance. +* **Trusted and mature**: ASP.NET Core is used and proven at hyperscale by some of the largest services in the world, including Bing, Xbox, Microsoft 365, and Azure. -:::moniker-end +## Get started -## Additional resources +Are ready to start your ASP.NET Core learning journey? It's time to build your first web app with ASP.NET Core! -* [Download .NET](https://dotnet.microsoft.com/download) -* [Visual Studio](https://visualstudio.microsoft.com/) -* [Visual Studio Code](https://code.visualstudio.com/) -* [.NET Developer Community](https://dotnet.microsoft.com/platform/community) -* [.NET Live TV](https://live.dot.net) +> [!div class="nextstepaction"] +> diff --git a/aspnetcore/performance/caching/middleware.md b/aspnetcore/performance/caching/middleware.md index dafea6f7c044..ff17588674cd 100644 --- a/aspnetcore/performance/caching/middleware.md +++ b/aspnetcore/performance/caching/middleware.md @@ -110,7 +110,7 @@ For more control over caching behavior, explore other caching features of ASP.NE ## Troubleshooting -The [Response Caching Middleware](https://github.com/dotnet/aspnetcore/blob/main/src/Middleware/ResponseCaching/src/ResponseCachingMiddleware.cs) uses , which has a limited capacity. When the capacity is exceeded, the [memory cache is compacted](https://github.com/dotnet/runtime/blob/v6.0.1/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCache.cs#L359-L365). +The [Response Caching Middleware](https://github.com/dotnet/aspnetcore/blob/main/src/Middleware/ResponseCaching/src/ResponseCachingMiddleware.cs) uses , which has a limited capacity. When the capacity is exceeded, the memory cache is compacted. If caching behavior isn't as expected, confirm that responses are cacheable and capable of being served from the cache. Examine the request's incoming headers and the response's outgoing headers. Enable [logging](xref:fundamentals/logging/index) to help with debugging. diff --git a/aspnetcore/security/authentication/cookie.md b/aspnetcore/security/authentication/cookie.md index 4b47bb96db4c..9f41d3e7390e 100644 --- a/aspnetcore/security/authentication/cookie.md +++ b/aspnetcore/security/authentication/cookie.md @@ -28,7 +28,7 @@ For demonstration purposes in the sample app, the user account for the hypotheti passed to `AddAuthentication` sets the default authentication scheme for the app. `AuthenticationScheme` is useful when there are multiple instances of cookie authentication and the app needs to [authorize with a specific scheme](xref:security/authorization/limitingidentitybyscheme). Setting the `AuthenticationScheme` to [CookieAuthenticationDefaults.AuthenticationScheme](xref:Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationDefaults.AuthenticationScheme) provides a value of `"Cookies"` for the scheme. Any string value can be used that distinguishes the scheme. -The app's authentication scheme is different from the app's cookie authentication scheme. When a cookie authentication scheme isn't provided to , it uses [`CookieAuthenticationDefaults.AuthenticationScheme`](xref:Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationDefaults.AuthenticationScheme). [The `CookieAuthenticationDefaults.AuthenticationScheme` GitHub Source](https://github.com/dotnet/aspnetcore/blob/v6.0.1/src/Security/Authentication/Cookies/src/CookieAuthenticationDefaults.cs#L16) shows it's set to `"Cookies"`. +The app's authentication scheme is different from the app's cookie authentication scheme. When a cookie authentication scheme isn't provided to , it uses (default value: `Cookies`). The authentication cookie's property is set to `true` by default. Authentication cookies are allowed when a site visitor hasn't consented to data collection. For more information, see . @@ -70,7 +70,7 @@ The Cookie Policy Middleware setting for `MinimumSameSitePolicy` can affect the To create a cookie holding user information, construct a . The user information is serialized and stored in the cookie. -Create a with any required s and call to sign in the user. `Login.cshtml.cs` in the sample app contains the following code: +Create a with any required s and call to sign in the user. `Login.cshtml.cs` in the sample app contains the following code: [!code-csharp[](cookie/samples/6.x/CookieSample/Pages/Account/Login.cshtml.cs?name=snippet1&highlight=22-59)] @@ -84,11 +84,11 @@ ASP.NET Core's [Data Protection](xref:security/data-protection/using-data-protec ## Sign out -To sign out the current user and delete their cookie, call : +To sign out the current user and delete their cookie, call : [!code-csharp[](cookie/samples/6.x/CookieSample/Pages/Account/Login.cshtml.cs?name=snippet2)] -If `CookieAuthenticationDefaults.AuthenticationScheme` or ["Cookies"](https://github.com/dotnet/aspnetcore/blob/v6.0.1/src/Security/Authentication/Cookies/src/CookieAuthenticationDefaults.cs#L16) isn't used as the scheme, supply the scheme used when configuring the authentication provider. Otherwise, the default scheme is used. For example, if "ContosoCookie" is used as the scheme, supply the scheme used when configuring the authentication provider. +Either supply the default authentication scheme ("`Cookies`") or supply the scheme that was used when configuring the authentication provider. When the browser closes it automatically deletes session based cookies (non-persistent cookies), but no cookies are cleared when an individual tab is closed. The server is not notified of tab or browser close events. @@ -99,7 +99,7 @@ Once a cookie is created, the cookie is the single source of identity. If a user * The app's cookie authentication system continues to process requests based on the authentication cookie. * The user remains signed into the app as long as the authentication cookie is valid. -The event can be used to intercept and override validation of the cookie identity. Validating the cookie on every request mitigates the risk of revoked users accessing the app. +The event can be used to intercept and override validation of the cookie identity. Validating the cookie on every request mitigates the risk of revoked users accessing the app. One approach to cookie validation is based on keeping track of when the user database changes. If the database hasn't been changed since the user's cookie was issued, there's no need to re-authenticate the user if their cookie is still valid. In the sample app, the database is implemented in `IUserRepository` and stores a `LastChanged` value. When a user is updated in the database, the `LastChanged` value is set to the current time. @@ -196,7 +196,7 @@ In the `Startup.ConfigureServices` method, create the Authentication Middleware passed to `AddAuthentication` sets the default authentication scheme for the app. `AuthenticationScheme` is useful when there are multiple instances of cookie authentication and you want to [authorize with a specific scheme](xref:security/authorization/limitingidentitybyscheme). Setting the `AuthenticationScheme` to [CookieAuthenticationDefaults.AuthenticationScheme](xref:Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationDefaults.AuthenticationScheme) provides a value of "Cookies" for the scheme. You can supply any string value that distinguishes the scheme. -The app's authentication scheme is different from the app's cookie authentication scheme. When a cookie authentication scheme isn't provided to , it uses `CookieAuthenticationDefaults.AuthenticationScheme` ("Cookies"). +The app's authentication scheme is different from the app's cookie authentication scheme. When a cookie authentication scheme isn't provided to , it uses `CookieAuthenticationDefaults.AuthenticationScheme` ("Cookies"). The authentication cookie's property is set to `true` by default. Authentication cookies are allowed when a site visitor hasn't consented to data collection. For more information, see . @@ -247,7 +247,7 @@ The Cookie Policy Middleware setting for `MinimumSameSitePolicy` can affect the To create a cookie holding user information, construct a . The user information is serialized and stored in the cookie. -Create a with any required s and call to sign in the user: +Create a with any required s and call to sign in the user: [!code-csharp[](cookie/samples/3.x/CookieSample/Pages/Account/Login.cshtml.cs?name=snippet1)] @@ -261,11 +261,11 @@ ASP.NET Core's [Data Protection](xref:security/data-protection/using-data-protec ## Sign out -To sign out the current user and delete their cookie, call : +To sign out the current user and delete their cookie, call : [!code-csharp[](cookie/samples/3.x/CookieSample/Pages/Account/Login.cshtml.cs?name=snippet2)] -If `CookieAuthenticationDefaults.AuthenticationScheme` (or "Cookies") isn't used as the scheme (for example, "ContosoCookie"), supply the scheme used when configuring the authentication provider. Otherwise, the default scheme is used. +Either supply the default authentication scheme ("`Cookies`") or supply the scheme that was used when configuring the authentication provider. When the browser closes it automatically deletes session based cookies (non-persistent cookies), but no cookies are cleared when an individual tab is closed. The server is not notified of tab or browser close events. @@ -276,7 +276,7 @@ Once a cookie is created, the cookie is the single source of identity. If a user * The app's cookie authentication system continues to process requests based on the authentication cookie. * The user remains signed into the app as long as the authentication cookie is valid. -The event can be used to intercept and override validation of the cookie identity. Validating the cookie on every request mitigates the risk of revoked users accessing the app. +The event can be used to intercept and override validation of the cookie identity. Validating the cookie on every request mitigates the risk of revoked users accessing the app. One approach to cookie validation is based on keeping track of when the user database changes. If the database hasn't been changed since the user's cookie was issued, there's no need to re-authenticate the user if their cookie is still valid. In the sample app, the database is implemented in `IUserRepository` and stores a `LastChanged` value. When a user is updated in the database, the `LastChanged` value is set to the current time. diff --git a/aspnetcore/toc.yml b/aspnetcore/toc.yml index 3888d1d06397..a5c143023b49 100644 --- a/aspnetcore/toc.yml +++ b/aspnetcore/toc.yml @@ -1,14 +1,8 @@ items: - name: ASP.NET Core documentation href: index.yml - - name: Overview - items: - - name: About ASP.NET Core - uid: index - - name: Compare ASP.NET Core and ASP.NET - uid: fundamentals/choose-between-aspnet-and-aspnetcore - - name: Compare .NET and .NET Framework - href: /dotnet/standard/choosing-core-framework-server?toc=/aspnet/core/toc.json&bc=/aspnet/core/breadcrumb/toc.json + - name: About ASP.NET Core + uid: index - name: Get started uid: get-started - name: What's new