From fc5397f16875de2c63eded3d37a39557338985d6 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/13] 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 ecd617e2e5057c410bd9471bdd29407188f92449 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/13] 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/13] 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 46f94710326a964c9bc595d81cd710c97ff1c8a9 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/13] 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 7c19fa29bfd46bc93e79fa819e96aa89567eeec8 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/13] 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 28589a458156da76fc619aeaf1f4577895148ef3 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/13] 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 2fe5ba90c842e7a700739a40120e75bf2cb1071a 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/13] 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 872ef9bf85c4734e2290a8f1fbf51240354e7ca7 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 08/13] 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 From 3c68abf3a8b3f9261a1ec6dc8eafaf3140d66677 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 09/13] Updates --- aspnetcore/introduction-to-aspnet-core.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/aspnetcore/introduction-to-aspnet-core.md b/aspnetcore/introduction-to-aspnet-core.md index eee524639529..c17df4dfc3f1 100644 --- a/aspnetcore/introduction-to-aspnet-core.md +++ b/aspnetcore/introduction-to-aspnet-core.md @@ -11,7 +11,11 @@ uid: index [!INCLUDE[](~/includes/not-latest-version.md)] +<<<<<<< HEAD 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. +======= +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. +>>>>>>> cae4bc7d7 (Updates) Key features: From 005f04c3fd08030901f26c27dfc97405ae6e1c21 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 10/13] Apply suggestions from code review Co-authored-by: Daniel Roth --- aspnetcore/introduction-to-aspnet-core.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/aspnetcore/introduction-to-aspnet-core.md b/aspnetcore/introduction-to-aspnet-core.md index c17df4dfc3f1..eee524639529 100644 --- a/aspnetcore/introduction-to-aspnet-core.md +++ b/aspnetcore/introduction-to-aspnet-core.md @@ -11,11 +11,7 @@ uid: index [!INCLUDE[](~/includes/not-latest-version.md)] -<<<<<<< HEAD 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. -======= -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. ->>>>>>> cae4bc7d7 (Updates) Key features: From 848c1da73c0576f0a76fdf8c71da0c46c40db3c6 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 11/13] Updates --- aspnetcore/includes/key-features.md | 53 +++++++++++++++++++++++ aspnetcore/introduction-to-aspnet-core.md | 38 ++++------------ 2 files changed, 61 insertions(+), 30 deletions(-) create mode 100644 aspnetcore/includes/key-features.md 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 eee524639529..729ca53a44e1 100644 --- a/aspnetcore/introduction-to-aspnet-core.md +++ b/aspnetcore/introduction-to-aspnet-core.md @@ -15,7 +15,7 @@ ASP.NET Core is a cross-platform, high-performance, open-source framework for bu Key features: -:::moniker range=">= aspnetcore-6.0" +## Why choose ASP.NET Core? (OPTION 2: SPACED BULLET LIST) * Lightweight and modular HTTP request pipeline. * [Kestrel](xref:fundamentals/servers/kestrel): A [high-performance](https://github.com/aspnet/benchmarks) and cross-platform HTTP server. @@ -31,41 +31,19 @@ Key features: * 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 +* **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. -* 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/). +* **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. -* 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/). +## Why choose ASP.NET Core? (OPTION 3: UNBULLETED LIST WITH ADDL SPACING) -:::moniker-end +**Unified framework** ## Why choose ASP.NET Core? From a5e971dfa757702d8a54a6d3fb6d3a51295f87e5 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 12/13] 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 b04213e2cb001a1afe5aef912cfedfbf3ecb57dd 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 13/13] Updates --- aspnetcore/includes/key-features.md | 53 ----------------------- aspnetcore/introduction-to-aspnet-core.md | 38 ++++++++++++---- 2 files changed, 30 insertions(+), 61 deletions(-) delete mode 100644 aspnetcore/includes/key-features.md 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 729ca53a44e1..eee524639529 100644 --- a/aspnetcore/introduction-to-aspnet-core.md +++ b/aspnetcore/introduction-to-aspnet-core.md @@ -15,7 +15,7 @@ ASP.NET Core is a cross-platform, high-performance, open-source framework for bu Key features: -## Why choose ASP.NET Core? (OPTION 2: SPACED BULLET LIST) +:::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. @@ -31,19 +31,41 @@ Key features: * 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/). -* **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-end -* **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. +:::moniker range=">= aspnetcore-3.0 < aspnetcore-6.0" -* **Cloud-ready**: Whether you're deploying to your own data centers or to the cloud, ASP.NET Core simplifies deployment, monitoring, and configuration. +* 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/). -* **Performance & scalability**: Handle the most demanding workloads with ASP.NET Core's industry leading performance. +:::moniker-end -* **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-3.0" -## Why choose ASP.NET Core? (OPTION 3: UNBULLETED LIST WITH ADDL SPACING) +* 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/). -**Unified framework** +:::moniker-end ## Why choose ASP.NET Core?