From 161fb907a4e0d4d120da9cd2dac0e4b31f663a5e Mon Sep 17 00:00:00 2001 From: Rick Andy <3605364+Rick-Anderson@users.noreply.github.com> Date: Wed, 14 May 2025 09:48:19 -0600 Subject: [PATCH 1/4] API v endpoint v operation /1 (#35325) --- .../includes/api_endpoint_operation.md | 90 +++++++++++++++++++ aspnetcore/fundamentals/openapi/overview.md | 3 + 2 files changed, 93 insertions(+) create mode 100644 aspnetcore/fundamentals/openapi/includes/api_endpoint_operation.md diff --git a/aspnetcore/fundamentals/openapi/includes/api_endpoint_operation.md b/aspnetcore/fundamentals/openapi/includes/api_endpoint_operation.md new file mode 100644 index 000000000000..7ac41b75855f --- /dev/null +++ b/aspnetcore/fundamentals/openapi/includes/api_endpoint_operation.md @@ -0,0 +1,90 @@ +## API v. API operation v. API endpoint + +The following sections explain the differences between an API, an API endpoint, and an API operation in the context of ASP.NET Core and OpenAPI documentation. + +### API (Application Programming Interface) + +An API is a set of rules and protocols for building and interacting with software applications. It defines how different software components should communicate. In general web development, "API" typically refers to a web service that exposes functionality over HTTP. + +In ASP.NET Core, an API is usually built using controllers or minimal APIs, which handle incoming HTTP requests and return responses. + +ASP.NET Core's internal naming conventions sometimes use "API" differently. For instance, in [API Explorer](/dotnet/api/microsoft.aspnetcore.mvc.apiexplorer), an "ApiDescription" actually represents an [API Operation](#api-operation) rather than the full API service. This distinction reflects internal naming conventions and sometimes differ from the broader definition used here. + +See [Introduction to the ApiExplorer in ASP.NET Core](https://andrewlock.net/introduction-to-the-apiexplorer-in-asp-net-core/) for more information on API Explorer. + +### API Operation + +An API operation represents a specific action or capability that an API provides. In ASP.NET Core, this corresponds to: + +* Controller action methods in MVC-style APIs +* Route handlers in Minimal APIs + +Each operation is defined by its HTTP method (`GET`, `POST`, `PUT`, etc.), path, parameters, and responses. + +### API Endpoint + +An API endpoint is a specific URL: + +* That represents a specific resource or functionality exposed by the API. +* Provides the exact address that a client needs to send an HTTP request to in order to interact with a particular API operation. + +An endpoint is a combination of the API's base URL and a specific path to the desired resource, along with the supported HTTP methods: + +* For controller-based APIs, endpoints combine the route template with controller and action. +* For Minimal APIs, endpoints are explicitly defined with `app.MapGet()`, `app.MapPost()`, etc. + +For example, the `api/products/{id}` endpoint that supports the following operations: + +* `GET /api/products/{id}` +* `PUT /api/products/{id}` +* `PATCH /api/products/{id}` +* `Delete /api/products/{id}` +* `HEAD /api/products/{id}` + +Endpoints often include query parameters, for example, `GET /api/products?category=electronics&sort=price` + +### OpenAPI Documentation + +In the context of OpenAPI, the documentation describes the API as a whole, including all its endpoints and operations. OpenAPI provides a structured way to document APIs, making it easier for developers to understand how to interact with them. + +API Operations are the primary focus of OpenAPI documentation. The [OpenAPI specification](https://spec.openapis.org/oas/latest.html) organizes documentation by operations, which are grouped by paths (endpoints). Each operation is described with details such as parameters, request bodies, responses, and more. This structured format allows tools to generate client libraries, server stubs, and interactive documentation automatically. + +In an OpenAPI document: + +* The entire document describes the API as a whole +* Each path item (like `/api/products/{id}`) represents an endpoint +* Under each path, the HTTP methods (`GET`, `POST`, `PUT`, etc.) define the operations +* Each operation contains details about parameters, request body, responses, etc. + +Example in OpenAPI JSON format: + +```JSON +json{ + "paths": { + "/api/products/{id}": { // This is the endpoint + "get": { // This is the operation + "summary": "Get a product by ID", + "parameters": [...], + "responses": {...} + }, + "put": { // Another operation on the same endpoint + "summary": "Update a product", + "parameters": [...], + "responses": {...} + } + } + } +} +``` + +## API, API operation, and API endpoint comparison + +The following table summarizes the differences between an API, an API operation, and an API endpoint: + +| Concept | API Operation | API Endpoint | +|-----------------|----------------------------------------------------|--------------------------------------------------| +| **Definition** | A logical description of an API action: method + path + behavior | The actual configured HTTP route that listens for requests | +| **Level** | Conceptual, what action can happen | Concrete, what URL and method are matched | +| **Tied to** | OpenAPI API design/specification | ASP.NET Core routing at runtime | +| **Describes** | What the API does for example, "create product" | Where and how to call it, for example, `POST https://localhost:7099/api/products`, `POST https://contoso.com/api/products` | +| **In ASP.NET Core** | Controller actions or Minimal API methods, before routing resolves | Endpoint objects resolved at runtime | diff --git a/aspnetcore/fundamentals/openapi/overview.md b/aspnetcore/fundamentals/openapi/overview.md index 2bbe0e087486..20b1ae8223ff 100644 --- a/aspnetcore/fundamentals/openapi/overview.md +++ b/aspnetcore/fundamentals/openapi/overview.md @@ -59,6 +59,9 @@ the output directory by setting the `OpenApiDocumentsDirectory` property. [!code-xml[](~/fundamentals/openapi/samples/9.x/WebMinOpenApi/projectFile.xml?highlight=9-12,16-19)] + +[!INCLUDE[](~/fundamentals/openapi/includes/api_endpoint_operation.md)] + ## ASP.NET Core OpenAPI source code on GitHub * [AddOpenApi](https://github.com/dotnet/aspnetcore/blob/main/src/OpenApi/src/Extensions/OpenApiServiceCollectionExtensions.cs) From df02d7abb670255f06e775982c5ee66bb6bbd9c7 Mon Sep 17 00:00:00 2001 From: Luke Latham <1622880+guardrex@users.noreply.github.com> Date: Wed, 14 May 2025 17:08:12 -0400 Subject: [PATCH 2/4] Update `ms.author` metadata (#35470) * Update `ms.author` metadata * Updates --- aspnetcore/blazor/advanced-scenarios.md | 2 +- aspnetcore/blazor/blazor-ef-core.md | 2 +- aspnetcore/blazor/call-web-api.md | 2 +- aspnetcore/blazor/components/built-in-components.md | 2 +- aspnetcore/blazor/components/cascading-values-and-parameters.md | 2 +- .../class-libraries-and-static-server-side-rendering.md | 2 +- aspnetcore/blazor/components/class-libraries.md | 2 +- aspnetcore/blazor/components/component-disposal.md | 2 +- aspnetcore/blazor/components/control-head-content.md | 2 +- aspnetcore/blazor/components/css-isolation.md | 2 +- aspnetcore/blazor/components/data-binding.md | 2 +- aspnetcore/blazor/components/dynamiccomponent.md | 2 +- .../blazor/components/element-component-model-relationships.md | 2 +- aspnetcore/blazor/components/event-handling.md | 2 +- aspnetcore/blazor/components/generic-type-support.md | 2 +- aspnetcore/blazor/components/httpcontext.md | 2 +- aspnetcore/blazor/components/index.md | 2 +- aspnetcore/blazor/components/integration-hosted-webassembly.md | 2 +- aspnetcore/blazor/components/integration.md | 2 +- aspnetcore/blazor/components/js-spa-frameworks.md | 2 +- aspnetcore/blazor/components/layouts.md | 2 +- aspnetcore/blazor/components/lifecycle.md | 2 +- aspnetcore/blazor/components/overwriting-parameters.md | 2 +- aspnetcore/blazor/components/prerender.md | 2 +- aspnetcore/blazor/components/quickgrid.md | 2 +- .../components/render-components-outside-of-aspnetcore.md | 2 +- aspnetcore/blazor/components/render-modes.md | 2 +- aspnetcore/blazor/components/rendering.md | 2 +- aspnetcore/blazor/components/sections.md | 2 +- .../components/splat-attributes-and-arbitrary-parameters.md | 2 +- aspnetcore/blazor/components/synchronization-context.md | 2 +- aspnetcore/blazor/components/templated-components.md | 2 +- aspnetcore/blazor/components/virtualization.md | 2 +- aspnetcore/blazor/debug.md | 2 +- aspnetcore/blazor/file-downloads.md | 2 +- aspnetcore/blazor/file-uploads.md | 2 +- aspnetcore/blazor/forms/binding.md | 2 +- aspnetcore/blazor/forms/index.md | 2 +- aspnetcore/blazor/forms/input-components.md | 2 +- aspnetcore/blazor/forms/troubleshoot.md | 2 +- aspnetcore/blazor/forms/validation.md | 2 +- aspnetcore/blazor/fundamentals/configuration.md | 2 +- aspnetcore/blazor/fundamentals/dependency-injection.md | 2 +- aspnetcore/blazor/fundamentals/environments.md | 2 +- aspnetcore/blazor/fundamentals/handle-errors.md | 2 +- aspnetcore/blazor/fundamentals/index.md | 2 +- aspnetcore/blazor/fundamentals/logging.md | 2 +- aspnetcore/blazor/fundamentals/routing.md | 2 +- aspnetcore/blazor/fundamentals/signalr.md | 2 +- aspnetcore/blazor/fundamentals/startup.md | 2 +- aspnetcore/blazor/fundamentals/static-files.md | 2 +- aspnetcore/blazor/globalization-localization.md | 2 +- aspnetcore/blazor/host-and-deploy/app-base-path.md | 2 +- aspnetcore/blazor/host-and-deploy/configure-linker.md | 2 +- aspnetcore/blazor/host-and-deploy/configure-trimmer.md | 2 +- aspnetcore/blazor/host-and-deploy/index.md | 2 +- aspnetcore/blazor/host-and-deploy/server/index.md | 2 +- aspnetcore/blazor/host-and-deploy/server/memory-management.md | 2 +- aspnetcore/blazor/host-and-deploy/webassembly/apache.md | 2 +- .../blazor/host-and-deploy/webassembly/azure-static-web-apps.md | 2 +- aspnetcore/blazor/host-and-deploy/webassembly/azure-storage.md | 2 +- .../webassembly/bundle-caching-and-integrity-check-failures.md | 2 +- .../blazor/host-and-deploy/webassembly/deployment-layout.md | 2 +- aspnetcore/blazor/host-and-deploy/webassembly/github-pages.md | 2 +- .../blazor/host-and-deploy/webassembly/http-caching-issues.md | 2 +- aspnetcore/blazor/host-and-deploy/webassembly/iis.md | 2 +- aspnetcore/blazor/host-and-deploy/webassembly/index.md | 2 +- .../host-and-deploy/webassembly/multiple-hosted-webassembly.md | 2 +- aspnetcore/blazor/host-and-deploy/webassembly/nginx.md | 2 +- aspnetcore/blazor/hosting-models.md | 2 +- aspnetcore/blazor/hybrid/class-libraries.md | 2 +- aspnetcore/blazor/hybrid/developer-tools.md | 2 +- aspnetcore/blazor/hybrid/index.md | 2 +- aspnetcore/blazor/hybrid/publish/index.md | 2 +- aspnetcore/blazor/hybrid/reuse-razor-components.md | 2 +- aspnetcore/blazor/hybrid/root-component-parameters.md | 2 +- aspnetcore/blazor/hybrid/routing.md | 2 +- aspnetcore/blazor/hybrid/security/index.md | 2 +- aspnetcore/blazor/hybrid/security/maui-blazor-web-identity.md | 2 +- aspnetcore/blazor/hybrid/security/security-considerations.md | 2 +- aspnetcore/blazor/hybrid/static-files.md | 2 +- aspnetcore/blazor/hybrid/troubleshoot.md | 2 +- aspnetcore/blazor/hybrid/tutorials/index.md | 2 +- aspnetcore/blazor/hybrid/tutorials/maui-blazor-web-app.md | 2 +- aspnetcore/blazor/hybrid/tutorials/maui.md | 2 +- aspnetcore/blazor/hybrid/tutorials/windows-forms.md | 2 +- aspnetcore/blazor/hybrid/tutorials/wpf.md | 2 +- aspnetcore/blazor/images-and-documents.md | 2 +- aspnetcore/blazor/index.md | 2 +- .../javascript-interoperability/call-dotnet-from-javascript.md | 2 +- .../javascript-interoperability/call-javascript-from-dotnet.md | 2 +- .../blazor/javascript-interoperability/import-export-interop.md | 2 +- aspnetcore/blazor/javascript-interoperability/index.md | 2 +- .../javascript-interoperability/location-of-javascript.md | 2 +- .../javascript-interoperability/static-server-rendering.md | 2 +- aspnetcore/blazor/performance/app-download-size.md | 2 +- aspnetcore/blazor/performance/index.md | 2 +- aspnetcore/blazor/performance/javascript-interoperability.md | 2 +- aspnetcore/blazor/performance/rendering.md | 2 +- .../webassembly-browser-developer-tools-diagnostics.md | 2 +- .../blazor/performance/webassembly-event-pipe-diagnostics.md | 2 +- aspnetcore/blazor/progressive-web-app.md | 2 +- aspnetcore/blazor/project-structure.md | 2 +- .../security/account-confirmation-and-password-recovery.md | 2 +- aspnetcore/blazor/security/additional-scenarios.md | 2 +- aspnetcore/blazor/security/authentication-state.md | 2 +- aspnetcore/blazor/security/blazor-web-app-with-entra.md | 2 +- aspnetcore/blazor/security/blazor-web-app-with-oidc.md | 2 +- .../security/blazor-web-app-with-windows-authentication.md | 2 +- aspnetcore/blazor/security/content-security-policy.md | 2 +- aspnetcore/blazor/security/gdpr.md | 2 +- aspnetcore/blazor/security/index.md | 2 +- aspnetcore/blazor/security/interactive-server-side-rendering.md | 2 +- aspnetcore/blazor/security/qrcodes-for-authenticator-apps.md | 2 +- aspnetcore/blazor/security/static-server-side-rendering.md | 2 +- aspnetcore/blazor/security/webassembly/additional-scenarios.md | 2 +- aspnetcore/blazor/security/webassembly/graph-api.md | 2 +- .../webassembly/hosted-with-azure-active-directory-b2c.md | 2 +- .../blazor/security/webassembly/hosted-with-identity-server.md | 2 +- .../security/webassembly/hosted-with-microsoft-entra-id.md | 2 +- aspnetcore/blazor/security/webassembly/index.md | 2 +- .../microsoft-entra-id-groups-and-roles-net-5-to-7.md | 2 +- .../security/webassembly/microsoft-entra-id-groups-and-roles.md | 2 +- .../webassembly/standalone-with-authentication-library.md | 2 +- .../webassembly/standalone-with-azure-active-directory-b2c.md | 2 +- .../account-confirmation-and-password-recovery.md | 2 +- .../security/webassembly/standalone-with-identity/index.md | 2 +- .../standalone-with-identity/qrcodes-for-authenticator-apps.md | 2 +- .../security/webassembly/standalone-with-microsoft-accounts.md | 2 +- .../security/webassembly/standalone-with-microsoft-entra-id.md | 2 +- aspnetcore/blazor/state-management.md | 2 +- aspnetcore/blazor/supported-platforms.md | 2 +- aspnetcore/blazor/test.md | 2 +- aspnetcore/blazor/tooling.md | 2 +- aspnetcore/blazor/tutorials/build-a-blazor-app.md | 2 +- aspnetcore/blazor/tutorials/index.md | 2 +- aspnetcore/blazor/tutorials/movie-database-app/index.md | 2 +- aspnetcore/blazor/tutorials/movie-database-app/part-1.md | 2 +- aspnetcore/blazor/tutorials/movie-database-app/part-2.md | 2 +- aspnetcore/blazor/tutorials/movie-database-app/part-3.md | 2 +- aspnetcore/blazor/tutorials/movie-database-app/part-4.md | 2 +- aspnetcore/blazor/tutorials/movie-database-app/part-5.md | 2 +- aspnetcore/blazor/tutorials/movie-database-app/part-6.md | 2 +- aspnetcore/blazor/tutorials/movie-database-app/part-7.md | 2 +- aspnetcore/blazor/tutorials/movie-database-app/part-8.md | 2 +- aspnetcore/blazor/tutorials/signalr-blazor.md | 2 +- aspnetcore/blazor/webassembly-build-tools-and-aot.md | 2 +- aspnetcore/blazor/webassembly-lazy-load-assemblies.md | 2 +- aspnetcore/blazor/webassembly-native-dependencies.md | 2 +- aspnetcore/client-side/dotnet-interop.md | 2 +- aspnetcore/client-side/dotnet-interop/index.md | 2 +- aspnetcore/client-side/dotnet-interop/wasm-browser-app.md | 2 +- aspnetcore/diagnostics/bl0001.md | 2 +- aspnetcore/diagnostics/bl0002.md | 2 +- aspnetcore/diagnostics/bl0003.md | 2 +- aspnetcore/diagnostics/bl0004.md | 2 +- aspnetcore/diagnostics/bl0005.md | 2 +- aspnetcore/diagnostics/bl0006.md | 2 +- aspnetcore/diagnostics/bl0007.md | 2 +- aspnetcore/docfx.json | 1 + .../mvc/views/tag-helpers/built-in/component-tag-helper.md | 2 +- .../mvc/views/tag-helpers/built-in/persist-component-state.md | 2 +- aspnetcore/signalr/httpcontext.md | 2 +- 163 files changed, 163 insertions(+), 162 deletions(-) diff --git a/aspnetcore/blazor/advanced-scenarios.md b/aspnetcore/blazor/advanced-scenarios.md index bb107273e078..81806ed2f997 100644 --- a/aspnetcore/blazor/advanced-scenarios.md +++ b/aspnetcore/blazor/advanced-scenarios.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor advanced scenarios (render tree construction) author: guardrex description: Learn how to incorporate manual logic for building Blazor render trees (RenderTreeBuilder). monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/advanced-scenarios diff --git a/aspnetcore/blazor/blazor-ef-core.md b/aspnetcore/blazor/blazor-ef-core.md index 246cfde74755..fa7856ca533a 100644 --- a/aspnetcore/blazor/blazor-ef-core.md +++ b/aspnetcore/blazor/blazor-ef-core.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor with Entity Framework Core (EF Core) author: guardrex description: Learn how to use Entity Framework Core (EF Core) in Blazor apps. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 01/16/2025 uid: blazor/blazor-ef-core diff --git a/aspnetcore/blazor/call-web-api.md b/aspnetcore/blazor/call-web-api.md index c991ff290803..6afd6bc62f18 100644 --- a/aspnetcore/blazor/call-web-api.md +++ b/aspnetcore/blazor/call-web-api.md @@ -3,7 +3,7 @@ title: Call a web API from an ASP.NET Core Blazor app author: guardrex description: Learn how to call a web API from Blazor apps. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 04/29/2025 uid: blazor/call-web-api diff --git a/aspnetcore/blazor/components/built-in-components.md b/aspnetcore/blazor/components/built-in-components.md index c86fec34c08c..9869c607b27d 100644 --- a/aspnetcore/blazor/components/built-in-components.md +++ b/aspnetcore/blazor/components/built-in-components.md @@ -3,7 +3,7 @@ title: ASP.NET Core built-in Razor components author: guardrex description: Find information on Razor components provided by the Blazor framework. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/components/built-in-components diff --git a/aspnetcore/blazor/components/cascading-values-and-parameters.md b/aspnetcore/blazor/components/cascading-values-and-parameters.md index 82d510502bf6..01913ef7460e 100644 --- a/aspnetcore/blazor/components/cascading-values-and-parameters.md +++ b/aspnetcore/blazor/components/cascading-values-and-parameters.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor cascading values and parameters author: guardrex description: Learn how to flow data from an ancestor Razor component to descendent components. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/components/cascading-values-and-parameters diff --git a/aspnetcore/blazor/components/class-libraries-and-static-server-side-rendering.md b/aspnetcore/blazor/components/class-libraries-and-static-server-side-rendering.md index b70cc4564c11..fa986286e7dd 100644 --- a/aspnetcore/blazor/components/class-libraries-and-static-server-side-rendering.md +++ b/aspnetcore/blazor/components/class-libraries-and-static-server-side-rendering.md @@ -3,7 +3,7 @@ title: ASP.NET Core Razor class libraries (RCLs) with static server-side renderi author: guardrex description: Learn how component authors can support static server-side rendering (static SSR) in ASP.NET Core Razor class libraries (RCLs). monikerRange: '>= aspnetcore-8.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/components/class-libraries-with-static-ssr diff --git a/aspnetcore/blazor/components/class-libraries.md b/aspnetcore/blazor/components/class-libraries.md index 670218a37d6d..a62417ae5a9c 100644 --- a/aspnetcore/blazor/components/class-libraries.md +++ b/aspnetcore/blazor/components/class-libraries.md @@ -3,7 +3,7 @@ title: Consume ASP.NET Core Razor components from a Razor class library (RCL) author: guardrex description: Discover how components can be included in Blazor apps from an external Razor class library (RCL). monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/components/class-libraries diff --git a/aspnetcore/blazor/components/component-disposal.md b/aspnetcore/blazor/components/component-disposal.md index 6aad30c773bd..eb531ba20cbf 100644 --- a/aspnetcore/blazor/components/component-disposal.md +++ b/aspnetcore/blazor/components/component-disposal.md @@ -3,7 +3,7 @@ title: ASP.NET Core Razor component disposal author: guardrex description: Learn about ASP.NET Core Razor component component disposal with IDisposable and IAsyncDisposable. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 03/18/2025 uid: blazor/components/component-disposal diff --git a/aspnetcore/blazor/components/control-head-content.md b/aspnetcore/blazor/components/control-head-content.md index cad5eeeb6385..0ec04cfc7488 100644 --- a/aspnetcore/blazor/components/control-head-content.md +++ b/aspnetcore/blazor/components/control-head-content.md @@ -3,7 +3,7 @@ title: Control head content in ASP.NET Core Blazor apps author: guardrex description: Learn how to control head content in Blazor apps, including how to set the page title from a component. monikerRange: '>= aspnetcore-6.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/components/control-head-content diff --git a/aspnetcore/blazor/components/css-isolation.md b/aspnetcore/blazor/components/css-isolation.md index b09f873c418c..d89243eebc79 100644 --- a/aspnetcore/blazor/components/css-isolation.md +++ b/aspnetcore/blazor/components/css-isolation.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor CSS isolation author: guardrex description: Learn how CSS isolation scopes CSS to Razor components, which can simplify CSS and avoid collisions with other components or libraries. monikerRange: '>= aspnetcore-5.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/components/css-isolation diff --git a/aspnetcore/blazor/components/data-binding.md b/aspnetcore/blazor/components/data-binding.md index 5e5bf88d77cb..f24dbe31deaf 100644 --- a/aspnetcore/blazor/components/data-binding.md +++ b/aspnetcore/blazor/components/data-binding.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor data binding author: guardrex description: Learn about data binding features for Razor components and DOM elements in Blazor apps. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/components/data-binding diff --git a/aspnetcore/blazor/components/dynamiccomponent.md b/aspnetcore/blazor/components/dynamiccomponent.md index 451e78fe1a79..235ec346f109 100644 --- a/aspnetcore/blazor/components/dynamiccomponent.md +++ b/aspnetcore/blazor/components/dynamiccomponent.md @@ -3,7 +3,7 @@ title: Dynamically-rendered ASP.NET Core Razor components author: guardrex description: Learn how to use dynamically-rendered Razor components in Blazor apps. monikerRange: '>= aspnetcore-6.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/components/dynamiccomponent diff --git a/aspnetcore/blazor/components/element-component-model-relationships.md b/aspnetcore/blazor/components/element-component-model-relationships.md index e7c3315cfc6f..f6c22bd0de13 100644 --- a/aspnetcore/blazor/components/element-component-model-relationships.md +++ b/aspnetcore/blazor/components/element-component-model-relationships.md @@ -3,7 +3,7 @@ title: Retain element, component, and model relationships in ASP.NET Core Blazor author: guardrex description: Learn how to use the @key directive attribute to retain element, component, and model relationships when rendering and the elements or components subsequently change. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/components/key diff --git a/aspnetcore/blazor/components/event-handling.md b/aspnetcore/blazor/components/event-handling.md index 5caf993bb17d..447386a82261 100644 --- a/aspnetcore/blazor/components/event-handling.md +++ b/aspnetcore/blazor/components/event-handling.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor event handling author: guardrex description: Learn about Blazor's event handling features, including event argument types, event callbacks, and managing default browser events. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/components/event-handling diff --git a/aspnetcore/blazor/components/generic-type-support.md b/aspnetcore/blazor/components/generic-type-support.md index edcb0abe0f2f..3be9b2166922 100644 --- a/aspnetcore/blazor/components/generic-type-support.md +++ b/aspnetcore/blazor/components/generic-type-support.md @@ -3,7 +3,7 @@ title: ASP.NET Core Razor component generic type support author: guardrex description: Learn about generic type support in ASP.NET Core Razor components. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/components/generic-type-support diff --git a/aspnetcore/blazor/components/httpcontext.md b/aspnetcore/blazor/components/httpcontext.md index 6b491d60dd05..9d9c86c2921c 100644 --- a/aspnetcore/blazor/components/httpcontext.md +++ b/aspnetcore/blazor/components/httpcontext.md @@ -3,7 +3,7 @@ title: IHttpContextAccessor/HttpContext in ASP.NET Core Blazor apps author: guardrex description: Learn about IHttpContextAccessor and HttpContext in ASP.NET Core Blazor apps. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 04/29/2025 uid: blazor/components/httpcontext diff --git a/aspnetcore/blazor/components/index.md b/aspnetcore/blazor/components/index.md index 0ac7bb1a4785..276bc9c94532 100644 --- a/aspnetcore/blazor/components/index.md +++ b/aspnetcore/blazor/components/index.md @@ -3,7 +3,7 @@ title: ASP.NET Core Razor components author: guardrex description: Learn how to create and use Razor components in Blazor apps, including guidance on Razor syntax, component naming, namespaces, and component parameters. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/components/index diff --git a/aspnetcore/blazor/components/integration-hosted-webassembly.md b/aspnetcore/blazor/components/integration-hosted-webassembly.md index bb7a36bc0606..cfcbbea3c6db 100644 --- a/aspnetcore/blazor/components/integration-hosted-webassembly.md +++ b/aspnetcore/blazor/components/integration-hosted-webassembly.md @@ -3,7 +3,7 @@ title: Integrate ASP.NET Core Razor components with MVC or Razor Pages in hosted author: guardrex description: Learn about Razor component integration scenarios for hosted Blazor WebAssembly apps with MVC or Razor Pages, including prerendering of Razor components on the server. monikerRange: '>= aspnetcore-3.1 < aspnetcore-8.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/components/integration-hosted-webassembly diff --git a/aspnetcore/blazor/components/integration.md b/aspnetcore/blazor/components/integration.md index de60e971868f..55f43d353ff1 100644 --- a/aspnetcore/blazor/components/integration.md +++ b/aspnetcore/blazor/components/integration.md @@ -3,7 +3,7 @@ title: Integrate ASP.NET Core Razor components with MVC or Razor Pages author: guardrex description: Learn about Razor component integration scenarios for MVC or Razor Pages, including prerendering of Razor components on the server. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/components/integration diff --git a/aspnetcore/blazor/components/js-spa-frameworks.md b/aspnetcore/blazor/components/js-spa-frameworks.md index fd56fdda920d..65cb07709e56 100644 --- a/aspnetcore/blazor/components/js-spa-frameworks.md +++ b/aspnetcore/blazor/components/js-spa-frameworks.md @@ -3,7 +3,7 @@ title: Use Razor components in JavaScript apps and SPA frameworks author: guardrex description: Learn how to create and use Razor components in JavaScript apps and SPA frameworks. monikerRange: '>= aspnetcore-6.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/components/js-spa-frameworks diff --git a/aspnetcore/blazor/components/layouts.md b/aspnetcore/blazor/components/layouts.md index 1841b157ac78..9ad6b6d89084 100644 --- a/aspnetcore/blazor/components/layouts.md +++ b/aspnetcore/blazor/components/layouts.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor layouts author: guardrex description: Learn how to create reusable layout components for Blazor apps. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/components/layouts diff --git a/aspnetcore/blazor/components/lifecycle.md b/aspnetcore/blazor/components/lifecycle.md index d4bbd33233a4..72c65cfd22c1 100644 --- a/aspnetcore/blazor/components/lifecycle.md +++ b/aspnetcore/blazor/components/lifecycle.md @@ -3,7 +3,7 @@ title: ASP.NET Core Razor component lifecycle author: guardrex description: Learn about the ASP.NET Core Razor component lifecycle and how to use lifecycle events. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/components/lifecycle diff --git a/aspnetcore/blazor/components/overwriting-parameters.md b/aspnetcore/blazor/components/overwriting-parameters.md index db468cd6ad87..e53ae5d901be 100644 --- a/aspnetcore/blazor/components/overwriting-parameters.md +++ b/aspnetcore/blazor/components/overwriting-parameters.md @@ -3,7 +3,7 @@ title: Avoid overwriting parameters in ASP.NET Core Blazor author: guardrex description: Learn how to avoid overwriting parameters in Blazor apps during rerendering. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 12/13/2024 uid: blazor/components/overwriting-parameters diff --git a/aspnetcore/blazor/components/prerender.md b/aspnetcore/blazor/components/prerender.md index 85f2a7641af3..06732f2de0e4 100644 --- a/aspnetcore/blazor/components/prerender.md +++ b/aspnetcore/blazor/components/prerender.md @@ -3,7 +3,7 @@ title: Prerender ASP.NET Core Razor components author: guardrex description: Learn about Razor component prerendering in ASP.NET Core Blazor apps. monikerRange: '>= aspnetcore-8.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/components/prerender diff --git a/aspnetcore/blazor/components/quickgrid.md b/aspnetcore/blazor/components/quickgrid.md index 2999185c53ab..9844d7430d76 100644 --- a/aspnetcore/blazor/components/quickgrid.md +++ b/aspnetcore/blazor/components/quickgrid.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor `QuickGrid` component author: guardrex description: The QuickGrid component is a Razor component for quickly and efficiently displaying data in tabular form. monikerRange: '>= aspnetcore-8.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/components/quickgrid diff --git a/aspnetcore/blazor/components/render-components-outside-of-aspnetcore.md b/aspnetcore/blazor/components/render-components-outside-of-aspnetcore.md index e6bf3b2b92fa..c80b034a6199 100644 --- a/aspnetcore/blazor/components/render-components-outside-of-aspnetcore.md +++ b/aspnetcore/blazor/components/render-components-outside-of-aspnetcore.md @@ -3,7 +3,7 @@ title: Render Razor components outside of ASP.NET Core author: guardrex description: Render Razor components outside of the context of an HTTP request. monikerRange: '>= aspnetcore-8.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/components/render-outside-of-aspnetcore diff --git a/aspnetcore/blazor/components/render-modes.md b/aspnetcore/blazor/components/render-modes.md index 6c9384595440..c5c6d322e40e 100644 --- a/aspnetcore/blazor/components/render-modes.md +++ b/aspnetcore/blazor/components/render-modes.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor render modes author: guardrex description: Learn about Blazor render modes and how to apply them in Blazor Web Apps. monikerRange: '>= aspnetcore-8.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/components/render-modes diff --git a/aspnetcore/blazor/components/rendering.md b/aspnetcore/blazor/components/rendering.md index b4f61e590b51..756d63ca619d 100644 --- a/aspnetcore/blazor/components/rendering.md +++ b/aspnetcore/blazor/components/rendering.md @@ -3,7 +3,7 @@ title: ASP.NET Core Razor component rendering author: guardrex description: Learn about Razor component rendering in ASP.NET Core Blazor apps, including when to manually trigger a component to render. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/components/rendering diff --git a/aspnetcore/blazor/components/sections.md b/aspnetcore/blazor/components/sections.md index 6a1fca94cdb1..9b55207c7b1d 100644 --- a/aspnetcore/blazor/components/sections.md +++ b/aspnetcore/blazor/components/sections.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor sections author: guardrex description: Learn how to control the content in a Razor component from a child Razor component. monikerRange: '>= aspnetcore-8.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/components/sections diff --git a/aspnetcore/blazor/components/splat-attributes-and-arbitrary-parameters.md b/aspnetcore/blazor/components/splat-attributes-and-arbitrary-parameters.md index bc1fb77405d8..e85f1ea3f05f 100644 --- a/aspnetcore/blazor/components/splat-attributes-and-arbitrary-parameters.md +++ b/aspnetcore/blazor/components/splat-attributes-and-arbitrary-parameters.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor attribute splatting and arbitrary parameters author: guardrex description: Learn how components can capture and render additional attributes in addition to the component's declared parameters. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/components/attribute-splatting diff --git a/aspnetcore/blazor/components/synchronization-context.md b/aspnetcore/blazor/components/synchronization-context.md index 3dea6e83497b..dba4b9f7bf4c 100644 --- a/aspnetcore/blazor/components/synchronization-context.md +++ b/aspnetcore/blazor/components/synchronization-context.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor synchronization context author: guardrex description: Learn about Blazor's synchronization context, how to avoid thread-blocking calls, and how to invoke component methods externally. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/components/sync-context diff --git a/aspnetcore/blazor/components/templated-components.md b/aspnetcore/blazor/components/templated-components.md index d9e2392dc873..2e1d6a0a8231 100644 --- a/aspnetcore/blazor/components/templated-components.md +++ b/aspnetcore/blazor/components/templated-components.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor templated components author: guardrex description: Learn how templated components can accept one or more UI templates as parameters, which can then be used as part of the component's rendering logic. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/components/templated-components diff --git a/aspnetcore/blazor/components/virtualization.md b/aspnetcore/blazor/components/virtualization.md index a086b9e703f9..94bb474e3ae2 100644 --- a/aspnetcore/blazor/components/virtualization.md +++ b/aspnetcore/blazor/components/virtualization.md @@ -3,7 +3,7 @@ title: ASP.NET Core Razor component virtualization author: guardrex description: Learn how to use component virtualization in ASP.NET Core Blazor apps. monikerRange: '>= aspnetcore-5.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/components/virtualization diff --git a/aspnetcore/blazor/debug.md b/aspnetcore/blazor/debug.md index 8f955655deb0..037712630d29 100644 --- a/aspnetcore/blazor/debug.md +++ b/aspnetcore/blazor/debug.md @@ -3,7 +3,7 @@ title: Debug ASP.NET Core Blazor apps author: guardrex description: Learn how to debug Blazor apps, including debugging Blazor WebAssembly with browser developer tools or an integrated development environment (IDE). monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/debug diff --git a/aspnetcore/blazor/file-downloads.md b/aspnetcore/blazor/file-downloads.md index 52c970665adb..1ceb6a9205c5 100644 --- a/aspnetcore/blazor/file-downloads.md +++ b/aspnetcore/blazor/file-downloads.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor file downloads author: guardrex description: Learn how to download files in Blazor apps. monikerRange: '>= aspnetcore-6.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/file-downloads diff --git a/aspnetcore/blazor/file-uploads.md b/aspnetcore/blazor/file-uploads.md index b0460b14dab6..16b2516e7ffe 100644 --- a/aspnetcore/blazor/file-uploads.md +++ b/aspnetcore/blazor/file-uploads.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor file uploads author: guardrex description: Learn how to upload files in Blazor with the InputFile component. monikerRange: '>= aspnetcore-5.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/file-uploads diff --git a/aspnetcore/blazor/forms/binding.md b/aspnetcore/blazor/forms/binding.md index 392069df7493..46565e7948b7 100644 --- a/aspnetcore/blazor/forms/binding.md +++ b/aspnetcore/blazor/forms/binding.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor forms binding author: guardrex description: Learn how to use binding in Blazor forms. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/forms/binding diff --git a/aspnetcore/blazor/forms/index.md b/aspnetcore/blazor/forms/index.md index a358c602716c..2609fdeb75d9 100644 --- a/aspnetcore/blazor/forms/index.md +++ b/aspnetcore/blazor/forms/index.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor forms overview author: guardrex description: Learn how to use forms in Blazor. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/forms/index diff --git a/aspnetcore/blazor/forms/input-components.md b/aspnetcore/blazor/forms/input-components.md index 6fd060eaf8ba..63ecc271d2ed 100644 --- a/aspnetcore/blazor/forms/input-components.md +++ b/aspnetcore/blazor/forms/input-components.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor input components author: guardrex description: Learn about built-in Blazor input components. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/forms/input-components diff --git a/aspnetcore/blazor/forms/troubleshoot.md b/aspnetcore/blazor/forms/troubleshoot.md index 75dd36782fbf..c45688c817ee 100644 --- a/aspnetcore/blazor/forms/troubleshoot.md +++ b/aspnetcore/blazor/forms/troubleshoot.md @@ -3,7 +3,7 @@ title: Troubleshoot ASP.NET Core Blazor forms author: guardrex description: Learn how to troubleshoot forms in Blazor. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/forms/troubleshoot diff --git a/aspnetcore/blazor/forms/validation.md b/aspnetcore/blazor/forms/validation.md index 17d7e13aab3a..a650076ec7e9 100644 --- a/aspnetcore/blazor/forms/validation.md +++ b/aspnetcore/blazor/forms/validation.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor forms validation author: guardrex description: Learn how to use validation in Blazor forms. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/forms/validation diff --git a/aspnetcore/blazor/fundamentals/configuration.md b/aspnetcore/blazor/fundamentals/configuration.md index 62fd424799db..4ec7eb4a651a 100644 --- a/aspnetcore/blazor/fundamentals/configuration.md +++ b/aspnetcore/blazor/fundamentals/configuration.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor configuration author: guardrex description: Learn about Blazor app configuration, including app settings, authentication, and logging configuration. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/fundamentals/configuration diff --git a/aspnetcore/blazor/fundamentals/dependency-injection.md b/aspnetcore/blazor/fundamentals/dependency-injection.md index 1a73e727ba23..36dfbc445898 100644 --- a/aspnetcore/blazor/fundamentals/dependency-injection.md +++ b/aspnetcore/blazor/fundamentals/dependency-injection.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor dependency injection author: guardrex description: Learn how Blazor apps can inject services into components. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/fundamentals/dependency-injection diff --git a/aspnetcore/blazor/fundamentals/environments.md b/aspnetcore/blazor/fundamentals/environments.md index 7a3020b39cbf..b245867aaf61 100644 --- a/aspnetcore/blazor/fundamentals/environments.md +++ b/aspnetcore/blazor/fundamentals/environments.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor environments author: guardrex description: Learn about environments in Blazor, including how to set the environment. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/fundamentals/environments diff --git a/aspnetcore/blazor/fundamentals/handle-errors.md b/aspnetcore/blazor/fundamentals/handle-errors.md index 99c11c2180f2..6d0805d1b03c 100644 --- a/aspnetcore/blazor/fundamentals/handle-errors.md +++ b/aspnetcore/blazor/fundamentals/handle-errors.md @@ -3,7 +3,7 @@ title: Handle errors in ASP.NET Core Blazor apps author: guardrex description: Discover how ASP.NET Core Blazor manages unhandled exceptions and how to develop apps that detect and handle errors. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/fundamentals/handle-errors diff --git a/aspnetcore/blazor/fundamentals/index.md b/aspnetcore/blazor/fundamentals/index.md index 8e015974cc3d..34b5476330bf 100644 --- a/aspnetcore/blazor/fundamentals/index.md +++ b/aspnetcore/blazor/fundamentals/index.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor fundamentals author: guardrex description: Learn foundational concepts of the Blazor application framework. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/fundamentals/index diff --git a/aspnetcore/blazor/fundamentals/logging.md b/aspnetcore/blazor/fundamentals/logging.md index 2f76cb2c93b3..5fba6522a7d2 100644 --- a/aspnetcore/blazor/fundamentals/logging.md +++ b/aspnetcore/blazor/fundamentals/logging.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor logging author: guardrex description: Learn about Blazor app logging, including configuration and how to write log messages from Razor components. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/fundamentals/logging diff --git a/aspnetcore/blazor/fundamentals/routing.md b/aspnetcore/blazor/fundamentals/routing.md index f417177b7fb2..b8cf6f8be302 100644 --- a/aspnetcore/blazor/fundamentals/routing.md +++ b/aspnetcore/blazor/fundamentals/routing.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor routing and navigation author: guardrex description: Learn how to manage Blazor app request routing and how to use the Navigation Manager and NavLink component for navigation. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/fundamentals/routing diff --git a/aspnetcore/blazor/fundamentals/signalr.md b/aspnetcore/blazor/fundamentals/signalr.md index 06051bcda53f..ce55df09a16f 100644 --- a/aspnetcore/blazor/fundamentals/signalr.md +++ b/aspnetcore/blazor/fundamentals/signalr.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor SignalR guidance author: guardrex description: Learn how to configure and manage Blazor SignalR connections. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/fundamentals/signalr diff --git a/aspnetcore/blazor/fundamentals/startup.md b/aspnetcore/blazor/fundamentals/startup.md index 711b962117e7..05904cc0ac77 100644 --- a/aspnetcore/blazor/fundamentals/startup.md +++ b/aspnetcore/blazor/fundamentals/startup.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor startup author: guardrex description: Learn how to configure Blazor startup. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/fundamentals/startup diff --git a/aspnetcore/blazor/fundamentals/static-files.md b/aspnetcore/blazor/fundamentals/static-files.md index f1d81cd5ff5f..99998d96fc3b 100644 --- a/aspnetcore/blazor/fundamentals/static-files.md +++ b/aspnetcore/blazor/fundamentals/static-files.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor static files author: guardrex description: Learn how to configure and manage static files for Blazor apps. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/fundamentals/static-files diff --git a/aspnetcore/blazor/globalization-localization.md b/aspnetcore/blazor/globalization-localization.md index e99d5ce6f599..73147e6bd17b 100644 --- a/aspnetcore/blazor/globalization-localization.md +++ b/aspnetcore/blazor/globalization-localization.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor globalization and localization author: guardrex description: Learn how to render globalized and localized content to users in different cultures and languages. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/globalization-localization diff --git a/aspnetcore/blazor/host-and-deploy/app-base-path.md b/aspnetcore/blazor/host-and-deploy/app-base-path.md index 1a139642eb6e..4416fef8e02d 100644 --- a/aspnetcore/blazor/host-and-deploy/app-base-path.md +++ b/aspnetcore/blazor/host-and-deploy/app-base-path.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor app base path author: guardrex description: Learn about the app base path in ASP.NET Core Blazor apps, including configuration guidance. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 03/31/2025 uid: blazor/host-and-deploy/app-base-path diff --git a/aspnetcore/blazor/host-and-deploy/configure-linker.md b/aspnetcore/blazor/host-and-deploy/configure-linker.md index 73119e7eddd5..fa88872a141a 100644 --- a/aspnetcore/blazor/host-and-deploy/configure-linker.md +++ b/aspnetcore/blazor/host-and-deploy/configure-linker.md @@ -3,7 +3,7 @@ title: Configure the Linker for ASP.NET Core Blazor author: guardrex description: Learn how to control the Intermediate Language (IL) Linker when building a Blazor app. monikerRange: '= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/host-and-deploy/configure-linker diff --git a/aspnetcore/blazor/host-and-deploy/configure-trimmer.md b/aspnetcore/blazor/host-and-deploy/configure-trimmer.md index 2e6370621705..3535ba50431b 100644 --- a/aspnetcore/blazor/host-and-deploy/configure-trimmer.md +++ b/aspnetcore/blazor/host-and-deploy/configure-trimmer.md @@ -3,7 +3,7 @@ title: Configure the Trimmer for ASP.NET Core Blazor author: guardrex description: Learn how to control the Intermediate Language (IL) Trimmer when building a Blazor app. monikerRange: '>= aspnetcore-5.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/host-and-deploy/configure-trimmer diff --git a/aspnetcore/blazor/host-and-deploy/index.md b/aspnetcore/blazor/host-and-deploy/index.md index b98b401cb769..f2e6655cdb02 100644 --- a/aspnetcore/blazor/host-and-deploy/index.md +++ b/aspnetcore/blazor/host-and-deploy/index.md @@ -3,7 +3,7 @@ title: Host and deploy ASP.NET Core Blazor author: guardrex description: Discover how to host and deploy Blazor apps. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/host-and-deploy/index diff --git a/aspnetcore/blazor/host-and-deploy/server/index.md b/aspnetcore/blazor/host-and-deploy/server/index.md index ab9f8b398c0e..2f4fabf526f0 100644 --- a/aspnetcore/blazor/host-and-deploy/server/index.md +++ b/aspnetcore/blazor/host-and-deploy/server/index.md @@ -3,7 +3,7 @@ title: Host and deploy ASP.NET Core server-side Blazor apps author: guardrex description: Learn how to host and deploy server-side Blazor apps (Blazor Web Apps and Blazor Server apps) using ASP.NET Core. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc, linux-related-content ms.date: 11/12/2024 uid: blazor/host-and-deploy/server/index diff --git a/aspnetcore/blazor/host-and-deploy/server/memory-management.md b/aspnetcore/blazor/host-and-deploy/server/memory-management.md index 40b4c0bb243f..f9409444fea0 100644 --- a/aspnetcore/blazor/host-and-deploy/server/memory-management.md +++ b/aspnetcore/blazor/host-and-deploy/server/memory-management.md @@ -3,7 +3,7 @@ title: Manage memory in deployed ASP.NET Core server-side Blazor apps author: guardrex description: Learn how to manage memory use in deployed ASP.NET Core server-side Blazor apps. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 03/31/2025 uid: blazor/host-and-deploy/server/memory-management diff --git a/aspnetcore/blazor/host-and-deploy/webassembly/apache.md b/aspnetcore/blazor/host-and-deploy/webassembly/apache.md index 034cfedc8e03..f323c3e14b48 100644 --- a/aspnetcore/blazor/host-and-deploy/webassembly/apache.md +++ b/aspnetcore/blazor/host-and-deploy/webassembly/apache.md @@ -3,7 +3,7 @@ title: Host and deploy ASP.NET Core Blazor WebAssembly with Apache author: guardrex description: Learn how to host and deploy Blazor WebAssembly using Apache. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc, linux-related-content ms.date: 03/31/2025 uid: blazor/host-and-deploy/webassembly/apache diff --git a/aspnetcore/blazor/host-and-deploy/webassembly/azure-static-web-apps.md b/aspnetcore/blazor/host-and-deploy/webassembly/azure-static-web-apps.md index 1d79f9294dd8..35eee644ef21 100644 --- a/aspnetcore/blazor/host-and-deploy/webassembly/azure-static-web-apps.md +++ b/aspnetcore/blazor/host-and-deploy/webassembly/azure-static-web-apps.md @@ -3,7 +3,7 @@ title: Host and deploy ASP.NET Core standalone Blazor WebAssembly with Azure Sta author: guardrex description: Learn how to host and deploy standalone Blazor WebAssembly with Microsoft Azure Static Web Apps. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 03/31/2025 uid: blazor/host-and-deploy/webassembly/azure-static-web-apps diff --git a/aspnetcore/blazor/host-and-deploy/webassembly/azure-storage.md b/aspnetcore/blazor/host-and-deploy/webassembly/azure-storage.md index b56ca16951d9..3fc4770bcfcd 100644 --- a/aspnetcore/blazor/host-and-deploy/webassembly/azure-storage.md +++ b/aspnetcore/blazor/host-and-deploy/webassembly/azure-storage.md @@ -3,7 +3,7 @@ title: Host and deploy ASP.NET Core standalone Blazor WebAssembly with Azure Sto author: guardrex description: Learn how to host and deploy standalone Blazor WebAssembly using Microsoft Azure Storage. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 03/31/2025 uid: blazor/host-and-deploy/webassembly/azure-storage diff --git a/aspnetcore/blazor/host-and-deploy/webassembly/bundle-caching-and-integrity-check-failures.md b/aspnetcore/blazor/host-and-deploy/webassembly/bundle-caching-and-integrity-check-failures.md index a22db55eb483..33650c8451c3 100644 --- a/aspnetcore/blazor/host-and-deploy/webassembly/bundle-caching-and-integrity-check-failures.md +++ b/aspnetcore/blazor/host-and-deploy/webassembly/bundle-caching-and-integrity-check-failures.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor WebAssembly .NET bundle caching and integrity check f author: guardrex description: Learn about WebAssembly .NET app and runtime bundle caching and how to resolve integrity check failures in Blazor WebAssembly apps. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 04/03/2025 uid: blazor/host-and-deploy/webassembly/bundle-caching-and-integrity-check-failures diff --git a/aspnetcore/blazor/host-and-deploy/webassembly/deployment-layout.md b/aspnetcore/blazor/host-and-deploy/webassembly/deployment-layout.md index 7c028366e0a0..f9ce08363b64 100644 --- a/aspnetcore/blazor/host-and-deploy/webassembly/deployment-layout.md +++ b/aspnetcore/blazor/host-and-deploy/webassembly/deployment-layout.md @@ -3,7 +3,7 @@ title: Deployment layout for ASP.NET Core hosted Blazor WebAssembly apps author: guardrex description: Learn how to enable hosted Blazor WebAssembly deployments in environments that block the download and execution of dynamic-link library (DLL) files. monikerRange: '>= aspnetcore-6.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/host-and-deploy/webassembly/deployment-layout diff --git a/aspnetcore/blazor/host-and-deploy/webassembly/github-pages.md b/aspnetcore/blazor/host-and-deploy/webassembly/github-pages.md index 184a311235c6..42dc61a8837c 100644 --- a/aspnetcore/blazor/host-and-deploy/webassembly/github-pages.md +++ b/aspnetcore/blazor/host-and-deploy/webassembly/github-pages.md @@ -3,7 +3,7 @@ title: Host and deploy ASP.NET Core standalone Blazor WebAssembly with GitHub Pa author: guardrex description: Learn how to host and deploy standalone Blazor WebAssembly using GitHub Pages. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 03/31/2025 uid: blazor/host-and-deploy/webassembly/github-pages diff --git a/aspnetcore/blazor/host-and-deploy/webassembly/http-caching-issues.md b/aspnetcore/blazor/host-and-deploy/webassembly/http-caching-issues.md index 2660e92ba32b..e730cddce1d9 100644 --- a/aspnetcore/blazor/host-and-deploy/webassembly/http-caching-issues.md +++ b/aspnetcore/blazor/host-and-deploy/webassembly/http-caching-issues.md @@ -3,7 +3,7 @@ title: Avoid HTTP caching issues when upgrading ASP.NET Core Blazor apps author: guardrex description: Learn how to avoid HTTP caching issues when upgrading Blazor apps. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/host-and-deploy/webassembly/http-caching-issues diff --git a/aspnetcore/blazor/host-and-deploy/webassembly/iis.md b/aspnetcore/blazor/host-and-deploy/webassembly/iis.md index 229b37cd174d..c60d561dfea1 100644 --- a/aspnetcore/blazor/host-and-deploy/webassembly/iis.md +++ b/aspnetcore/blazor/host-and-deploy/webassembly/iis.md @@ -3,7 +3,7 @@ title: Host and deploy ASP.NET Core Blazor WebAssembly with IIS author: guardrex description: Learn how to host and deploy Blazor WebAssembly using Internet Information Services (IIS). monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/host-and-deploy/webassembly/iis diff --git a/aspnetcore/blazor/host-and-deploy/webassembly/index.md b/aspnetcore/blazor/host-and-deploy/webassembly/index.md index 4e15e80de9c5..1984acf6185a 100644 --- a/aspnetcore/blazor/host-and-deploy/webassembly/index.md +++ b/aspnetcore/blazor/host-and-deploy/webassembly/index.md @@ -3,7 +3,7 @@ title: Host and deploy ASP.NET Core Blazor WebAssembly author: guardrex description: Learn how to host and deploy Blazor WebAssembly apps. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc, linux-related-content ms.date: 11/12/2024 uid: blazor/host-and-deploy/webassembly/index diff --git a/aspnetcore/blazor/host-and-deploy/webassembly/multiple-hosted-webassembly.md b/aspnetcore/blazor/host-and-deploy/webassembly/multiple-hosted-webassembly.md index 002972171e63..82dd4f883cce 100644 --- a/aspnetcore/blazor/host-and-deploy/webassembly/multiple-hosted-webassembly.md +++ b/aspnetcore/blazor/host-and-deploy/webassembly/multiple-hosted-webassembly.md @@ -3,7 +3,7 @@ title: Multiple hosted ASP.NET Core Blazor WebAssembly apps author: guardrex description: Learn how to configure a hosted Blazor WebAssembly app to host multiple Blazor WebAssembly apps. monikerRange: '>= aspnetcore-3.1 < aspnetcore-8.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/host-and-deploy/webassembly/multiple-hosted-webassembly diff --git a/aspnetcore/blazor/host-and-deploy/webassembly/nginx.md b/aspnetcore/blazor/host-and-deploy/webassembly/nginx.md index e63725c6f7e6..79a03dad0e25 100644 --- a/aspnetcore/blazor/host-and-deploy/webassembly/nginx.md +++ b/aspnetcore/blazor/host-and-deploy/webassembly/nginx.md @@ -3,7 +3,7 @@ title: Host and deploy ASP.NET Core Blazor WebAssembly with Nginx author: guardrex description: Learn how to host and deploy Blazor WebAssembly using Nginx. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc, linux-related-content ms.date: 03/31/2025 uid: blazor/host-and-deploy/webassembly/nginx diff --git a/aspnetcore/blazor/hosting-models.md b/aspnetcore/blazor/hosting-models.md index 197ad75fdfd5..cfc8db739841 100644 --- a/aspnetcore/blazor/hosting-models.md +++ b/aspnetcore/blazor/hosting-models.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor hosting models author: guardrex description: Learn about Blazor hosting models and how to pick which one to use. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/hosting-models diff --git a/aspnetcore/blazor/hybrid/class-libraries.md b/aspnetcore/blazor/hybrid/class-libraries.md index 0ad4ff7cf39a..f602403821c1 100644 --- a/aspnetcore/blazor/hybrid/class-libraries.md +++ b/aspnetcore/blazor/hybrid/class-libraries.md @@ -3,7 +3,7 @@ title: Share assets across web and native clients using a Razor class library (R author: guardrex description: Learn how to share Razor components, C# code, and static assets across web and native clients using a Razor class library (RCL). monikerRange: '>= aspnetcore-6.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/hybrid/class-libraries diff --git a/aspnetcore/blazor/hybrid/developer-tools.md b/aspnetcore/blazor/hybrid/developer-tools.md index d380145e4364..f50fa7a692d4 100644 --- a/aspnetcore/blazor/hybrid/developer-tools.md +++ b/aspnetcore/blazor/hybrid/developer-tools.md @@ -3,7 +3,7 @@ title: Use browser developer tools with ASP.NET Core Blazor Hybrid author: guardrex description: Learn how to use browser developer tools with ASP.NET Core Blazor Hybrid apps. monikerRange: '>= aspnetcore-6.0' -ms.author: riande +ms.author: wpickett ms.custom: "mvc" ms.date: 11/12/2024 uid: blazor/hybrid/developer-tools diff --git a/aspnetcore/blazor/hybrid/index.md b/aspnetcore/blazor/hybrid/index.md index 739bba5eac2f..eb8ad23346a7 100644 --- a/aspnetcore/blazor/hybrid/index.md +++ b/aspnetcore/blazor/hybrid/index.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor Hybrid author: guardrex description: Explore ASP.NET Core Blazor Hybrid, a way to build interactive client-side web UI with .NET in an ASP.NET Core app. monikerRange: '>= aspnetcore-6.0' -ms.author: riande +ms.author: wpickett ms.custom: "mvc" ms.date: 11/12/2024 uid: blazor/hybrid/index diff --git a/aspnetcore/blazor/hybrid/publish/index.md b/aspnetcore/blazor/hybrid/publish/index.md index b84cb6ade9df..9ce6f2e0ecc2 100644 --- a/aspnetcore/blazor/hybrid/publish/index.md +++ b/aspnetcore/blazor/hybrid/publish/index.md @@ -3,7 +3,7 @@ title: Publish ASP.NET Core Blazor Hybrid apps author: guardrex description: Learn about publishing ASP.NET Core Blazor Hybrid apps. monikerRange: '>= aspnetcore-6.0' -ms.author: riande +ms.author: wpickett ms.custom: "mvc" ms.date: 11/12/2024 uid: blazor/hybrid/publish/index diff --git a/aspnetcore/blazor/hybrid/reuse-razor-components.md b/aspnetcore/blazor/hybrid/reuse-razor-components.md index 75ea893d2936..578d707caa9c 100644 --- a/aspnetcore/blazor/hybrid/reuse-razor-components.md +++ b/aspnetcore/blazor/hybrid/reuse-razor-components.md @@ -3,7 +3,7 @@ title: Reuse Razor components in ASP.NET Core Blazor Hybrid apps author: guardrex description: Learn how to author and organize Razor components for the web and Web Views in Blazor Hybrid apps. monikerRange: '>= aspnetcore-6.0' -ms.author: riande +ms.author: wpickett ms.custom: "mvc" ms.date: 11/12/2024 uid: blazor/hybrid/reuse-razor-components diff --git a/aspnetcore/blazor/hybrid/root-component-parameters.md b/aspnetcore/blazor/hybrid/root-component-parameters.md index 9c6099e53d38..7c2c19ab0a11 100644 --- a/aspnetcore/blazor/hybrid/root-component-parameters.md +++ b/aspnetcore/blazor/hybrid/root-component-parameters.md @@ -3,7 +3,7 @@ title: Pass root component parameters in ASP.NET Core Blazor Hybrid author: guardrex description: Learn how to pass an optional dictionary of parameters to the root component in an ASP.NET Core Blazor Hybrid app. monikerRange: '>= aspnetcore-6.0' -ms.author: riande +ms.author: wpickett ms.custom: "mvc" ms.date: 11/12/2024 uid: blazor/hybrid/root-component-parameters diff --git a/aspnetcore/blazor/hybrid/routing.md b/aspnetcore/blazor/hybrid/routing.md index ed894028521b..5d60a03a37cc 100644 --- a/aspnetcore/blazor/hybrid/routing.md +++ b/aspnetcore/blazor/hybrid/routing.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor Hybrid routing and navigation author: guardrex description: Learn how to manage request routing and navigation in Blazor Hybrid apps. monikerRange: '>= aspnetcore-6.0' -ms.author: riande +ms.author: wpickett ms.custom: "mvc" ms.date: 11/12/2024 uid: blazor/hybrid/routing diff --git a/aspnetcore/blazor/hybrid/security/index.md b/aspnetcore/blazor/hybrid/security/index.md index 62c645593eaf..fecc8f073842 100644 --- a/aspnetcore/blazor/hybrid/security/index.md +++ b/aspnetcore/blazor/hybrid/security/index.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor Hybrid authentication and authorization author: guardrex description: Learn about Blazor Hybrid authentication and authorization scenarios. monikerRange: '>= aspnetcore-6.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/hybrid/security/index diff --git a/aspnetcore/blazor/hybrid/security/maui-blazor-web-identity.md b/aspnetcore/blazor/hybrid/security/maui-blazor-web-identity.md index 5e3ab847eb16..2bdfd701cf41 100644 --- a/aspnetcore/blazor/hybrid/security/maui-blazor-web-identity.md +++ b/aspnetcore/blazor/hybrid/security/maui-blazor-web-identity.md @@ -3,7 +3,7 @@ title: .NET MAUI Blazor Hybrid and Web App with ASP.NET Core Identity author: guardrex description: Learn how to build a .NET MAUI Blazor Hybrid app with a Blazor Web App that manages authentication with ASP.NET Core Identity. monikerRange: '>= aspnetcore-9.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 03/12/2025 uid: blazor/hybrid/security/maui-blazor-web-identity diff --git a/aspnetcore/blazor/hybrid/security/security-considerations.md b/aspnetcore/blazor/hybrid/security/security-considerations.md index ab297491c906..cae49da8ccb2 100644 --- a/aspnetcore/blazor/hybrid/security/security-considerations.md +++ b/aspnetcore/blazor/hybrid/security/security-considerations.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor Hybrid security considerations author: guardrex description: Learn about security considerations when developing apps in Blazor Hybrid. monikerRange: '>= aspnetcore-6.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/hybrid/security/security-considerations diff --git a/aspnetcore/blazor/hybrid/static-files.md b/aspnetcore/blazor/hybrid/static-files.md index 1e1e5b10922a..caca0bf4844f 100644 --- a/aspnetcore/blazor/hybrid/static-files.md +++ b/aspnetcore/blazor/hybrid/static-files.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor Hybrid static files author: guardrex description: Learn how to consume static asset files in Blazor Hybrid apps. monikerRange: '>= aspnetcore-6.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/hybrid/static-files diff --git a/aspnetcore/blazor/hybrid/troubleshoot.md b/aspnetcore/blazor/hybrid/troubleshoot.md index 88403a852790..9d8cabaa4b19 100644 --- a/aspnetcore/blazor/hybrid/troubleshoot.md +++ b/aspnetcore/blazor/hybrid/troubleshoot.md @@ -3,7 +3,7 @@ title: Troubleshoot ASP.NET Core Blazor Hybrid author: guardrex description: Learn how to troubleshoot issues in ASP.NET Core Blazor Hybrid with BlazorWebView logging. monikerRange: '>= aspnetcore-8.0' -ms.author: riande +ms.author: wpickett ms.custom: "mvc" ms.date: 11/12/2024 uid: blazor/hybrid/troubleshoot diff --git a/aspnetcore/blazor/hybrid/tutorials/index.md b/aspnetcore/blazor/hybrid/tutorials/index.md index 7d9bf7fa85ce..8a639e7cd36b 100644 --- a/aspnetcore/blazor/hybrid/tutorials/index.md +++ b/aspnetcore/blazor/hybrid/tutorials/index.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor Hybrid tutorials author: guardrex description: Learn how to build Blazor Hybrid apps with the tutorials listed in this article. monikerRange: '>= aspnetcore-6.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/hybrid/tutorials/index diff --git a/aspnetcore/blazor/hybrid/tutorials/maui-blazor-web-app.md b/aspnetcore/blazor/hybrid/tutorials/maui-blazor-web-app.md index 88855e066f86..8b494a1d0d58 100644 --- a/aspnetcore/blazor/hybrid/tutorials/maui-blazor-web-app.md +++ b/aspnetcore/blazor/hybrid/tutorials/maui-blazor-web-app.md @@ -3,7 +3,7 @@ title: Build a .NET MAUI Blazor Hybrid app with a Blazor Web App author: guardrex description: Learn how to build a .NET MAUI Blazor Hybrid app with a Blazor Web App that uses a shared user interface via a Razor class library (RCL). monikerRange: '>= aspnetcore-8.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/hybrid/tutorials/maui-blazor-web-app diff --git a/aspnetcore/blazor/hybrid/tutorials/maui.md b/aspnetcore/blazor/hybrid/tutorials/maui.md index 5d3e694a1064..88c25e6892ef 100644 --- a/aspnetcore/blazor/hybrid/tutorials/maui.md +++ b/aspnetcore/blazor/hybrid/tutorials/maui.md @@ -3,7 +3,7 @@ title: Build a .NET MAUI Blazor Hybrid app author: guardrex description: Build a .NET MAUI Blazor Hybrid app step-by-step. monikerRange: '>= aspnetcore-6.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/hybrid/tutorials/maui diff --git a/aspnetcore/blazor/hybrid/tutorials/windows-forms.md b/aspnetcore/blazor/hybrid/tutorials/windows-forms.md index 5967275c9aa7..1d5979b2afb0 100644 --- a/aspnetcore/blazor/hybrid/tutorials/windows-forms.md +++ b/aspnetcore/blazor/hybrid/tutorials/windows-forms.md @@ -3,7 +3,7 @@ title: Build a Windows Forms Blazor app author: guardrex description: Build a Windows Forms Blazor app step-by-step. monikerRange: '>= aspnetcore-6.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/hybrid/tutorials/windows-forms diff --git a/aspnetcore/blazor/hybrid/tutorials/wpf.md b/aspnetcore/blazor/hybrid/tutorials/wpf.md index cc7781a44ae6..933c3c1f13a9 100644 --- a/aspnetcore/blazor/hybrid/tutorials/wpf.md +++ b/aspnetcore/blazor/hybrid/tutorials/wpf.md @@ -3,7 +3,7 @@ title: Build a Windows Presentation Foundation (WPF) Blazor app author: guardrex description: Build a Windows Presentation Foundation (WPF) app step-by-step. monikerRange: '>= aspnetcore-6.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/hybrid/tutorials/wpf diff --git a/aspnetcore/blazor/images-and-documents.md b/aspnetcore/blazor/images-and-documents.md index beb9d4c50e6c..670ef3a3a950 100644 --- a/aspnetcore/blazor/images-and-documents.md +++ b/aspnetcore/blazor/images-and-documents.md @@ -3,7 +3,7 @@ title: Display images and documents in ASP.NET Core Blazor author: guardrex description: Learn how to display images and documents in ASP.NET Core Blazor apps. monikerRange: '>= aspnetcore-6.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/images-and-documents diff --git a/aspnetcore/blazor/index.md b/aspnetcore/blazor/index.md index 28496a2ce329..eb3a4999482c 100644 --- a/aspnetcore/blazor/index.md +++ b/aspnetcore/blazor/index.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor author: guardrex description: Explore ASP.NET Core Blazor, a way to build interactive client-side web UI with .NET in an ASP.NET Core app. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: "mvc" ms.date: 11/12/2024 uid: blazor/index diff --git a/aspnetcore/blazor/javascript-interoperability/call-dotnet-from-javascript.md b/aspnetcore/blazor/javascript-interoperability/call-dotnet-from-javascript.md index b11bc8266913..f8e727e88f5f 100644 --- a/aspnetcore/blazor/javascript-interoperability/call-dotnet-from-javascript.md +++ b/aspnetcore/blazor/javascript-interoperability/call-dotnet-from-javascript.md @@ -3,7 +3,7 @@ title: Call .NET methods from JavaScript functions in ASP.NET Core Blazor author: guardrex description: Learn how to invoke .NET methods from JavaScript functions in Blazor apps. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 12/17/2024 uid: blazor/js-interop/call-dotnet-from-javascript diff --git a/aspnetcore/blazor/javascript-interoperability/call-javascript-from-dotnet.md b/aspnetcore/blazor/javascript-interoperability/call-javascript-from-dotnet.md index d9f5d99e5caa..21ba5a8d1327 100644 --- a/aspnetcore/blazor/javascript-interoperability/call-javascript-from-dotnet.md +++ b/aspnetcore/blazor/javascript-interoperability/call-javascript-from-dotnet.md @@ -3,7 +3,7 @@ title: Call JavaScript functions from .NET methods in ASP.NET Core Blazor author: guardrex description: Learn how to invoke JavaScript functions from .NET methods in Blazor apps. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 4/10/2024 uid: blazor/js-interop/call-javascript-from-dotnet diff --git a/aspnetcore/blazor/javascript-interoperability/import-export-interop.md b/aspnetcore/blazor/javascript-interoperability/import-export-interop.md index 13f78ef51053..e4226bc90f9b 100644 --- a/aspnetcore/blazor/javascript-interoperability/import-export-interop.md +++ b/aspnetcore/blazor/javascript-interoperability/import-export-interop.md @@ -3,7 +3,7 @@ title: JavaScript JSImport/JSExport interop with ASP.NET Core Blazor author: guardrex description: Learn how to interact with JavaScript in client-side components using JavaScript `[JSImport]`/`[JSExport]` interop. monikerRange: '>= aspnetcore-7.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/js-interop/import-export-interop diff --git a/aspnetcore/blazor/javascript-interoperability/index.md b/aspnetcore/blazor/javascript-interoperability/index.md index fe5b2b86ef1c..bee0906f27ac 100644 --- a/aspnetcore/blazor/javascript-interoperability/index.md +++ b/aspnetcore/blazor/javascript-interoperability/index.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor JavaScript interoperability (JS interop) author: guardrex description: Learn how to interact with JavaScript in Blazor apps. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/js-interop/index diff --git a/aspnetcore/blazor/javascript-interoperability/location-of-javascript.md b/aspnetcore/blazor/javascript-interoperability/location-of-javascript.md index 250052f9c8a4..4f72be222bfe 100644 --- a/aspnetcore/blazor/javascript-interoperability/location-of-javascript.md +++ b/aspnetcore/blazor/javascript-interoperability/location-of-javascript.md @@ -3,7 +3,7 @@ title: JavaScript location in ASP.NET Core Blazor apps author: guardrex description: Learn where to place and how to load JavaScript in Blazor apps. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/js-interop/javascript-location diff --git a/aspnetcore/blazor/javascript-interoperability/static-server-rendering.md b/aspnetcore/blazor/javascript-interoperability/static-server-rendering.md index aa6b94eaa778..2e651d1882a0 100644 --- a/aspnetcore/blazor/javascript-interoperability/static-server-rendering.md +++ b/aspnetcore/blazor/javascript-interoperability/static-server-rendering.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor JavaScript with static server-side rendering (static author: guardrex description: Learn how to use JavaScript in a Blazor Web App with static server-side rendering (static SSR). monikerRange: '>= aspnetcore-8.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/js-interop/ssr diff --git a/aspnetcore/blazor/performance/app-download-size.md b/aspnetcore/blazor/performance/app-download-size.md index b8018b18bd01..5b989f4a8986 100644 --- a/aspnetcore/blazor/performance/app-download-size.md +++ b/aspnetcore/blazor/performance/app-download-size.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor app download size performance best practices author: guardrex description: Tips for reducing app download size in ASP.NET Core Blazor apps and avoiding common performance problems. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 05/02/2025 uid: blazor/performance/app-download-size diff --git a/aspnetcore/blazor/performance/index.md b/aspnetcore/blazor/performance/index.md index 1ecf596b0dc8..807d1f7d2c5b 100644 --- a/aspnetcore/blazor/performance/index.md +++ b/aspnetcore/blazor/performance/index.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor performance best practices author: guardrex description: Tips for increasing the performance of ASP.NET Core Blazor apps and avoiding common performance problems. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 04/16/2025 uid: blazor/performance/index diff --git a/aspnetcore/blazor/performance/javascript-interoperability.md b/aspnetcore/blazor/performance/javascript-interoperability.md index 93f439633f78..08de251ecfcd 100644 --- a/aspnetcore/blazor/performance/javascript-interoperability.md +++ b/aspnetcore/blazor/performance/javascript-interoperability.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor JavaScript interoperability (JS interop) performance author: guardrex description: Tips for improving JS interop performance in ASP.NET Core Blazor apps and avoiding common performance problems. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 04/16/2025 uid: blazor/performance/js-interop diff --git a/aspnetcore/blazor/performance/rendering.md b/aspnetcore/blazor/performance/rendering.md index 7c5b18cdb028..6558e4fbc80c 100644 --- a/aspnetcore/blazor/performance/rendering.md +++ b/aspnetcore/blazor/performance/rendering.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor rendering performance best practices author: guardrex description: Tips for improving the rendering performance of ASP.NET Core Blazor apps and avoiding common performance problems. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 04/16/2025 uid: blazor/performance/rendering diff --git a/aspnetcore/blazor/performance/webassembly-browser-developer-tools-diagnostics.md b/aspnetcore/blazor/performance/webassembly-browser-developer-tools-diagnostics.md index ddac79647acf..f7e28c858127 100644 --- a/aspnetcore/blazor/performance/webassembly-browser-developer-tools-diagnostics.md +++ b/aspnetcore/blazor/performance/webassembly-browser-developer-tools-diagnostics.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor WebAssembly browser developer tools diagnostics author: guardrex description: Learn about browser developer tools diagnostics in ASP.NET Core Blazor WebAssembly apps. monikerRange: '>= aspnetcore-10.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 05/13/2025 uid: blazor/performance/webassembly-browser-developer-tools diff --git a/aspnetcore/blazor/performance/webassembly-event-pipe-diagnostics.md b/aspnetcore/blazor/performance/webassembly-event-pipe-diagnostics.md index 7c27c172e03e..6c9e653c48a4 100644 --- a/aspnetcore/blazor/performance/webassembly-event-pipe-diagnostics.md +++ b/aspnetcore/blazor/performance/webassembly-event-pipe-diagnostics.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor WebAssembly Event Pipe diagnostics author: guardrex description: Learn about Event Pipe diagnostics and how to get a Garbage Collector heap dump in ASP.NET Core Blazor WebAssembly apps. monikerRange: '>= aspnetcore-10.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 05/02/2025 uid: blazor/performance/webassembly-event-pipe diff --git a/aspnetcore/blazor/progressive-web-app.md b/aspnetcore/blazor/progressive-web-app.md index 6eacef7c0a89..e2fc6ca8ce92 100644 --- a/aspnetcore/blazor/progressive-web-app.md +++ b/aspnetcore/blazor/progressive-web-app.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor Progressive Web Application (PWA) author: guardrex description: Learn how to build a Blazor Progressive Web Application (PWA) that use modern browser features to behave like a desktop app. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/progressive-web-app diff --git a/aspnetcore/blazor/project-structure.md b/aspnetcore/blazor/project-structure.md index 7a90a4590297..8eb06bf29729 100644 --- a/aspnetcore/blazor/project-structure.md +++ b/aspnetcore/blazor/project-structure.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor project structure author: guardrex description: Learn about ASP.NET Core Blazor app project structure. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/project-structure diff --git a/aspnetcore/blazor/security/account-confirmation-and-password-recovery.md b/aspnetcore/blazor/security/account-confirmation-and-password-recovery.md index 20e666e30950..92ee6728115b 100644 --- a/aspnetcore/blazor/security/account-confirmation-and-password-recovery.md +++ b/aspnetcore/blazor/security/account-confirmation-and-password-recovery.md @@ -2,7 +2,7 @@ title: Account confirmation and password recovery in ASP.NET Core Blazor author: guardrex description: Learn how to configure an ASP.NET Core Blazor Web App with email confirmation and password recovery. -ms.author: riande +ms.author: wpickett monikerRange: '>= aspnetcore-8.0' ms.date: 11/12/2024 uid: blazor/security/account-confirmation-and-password-recovery diff --git a/aspnetcore/blazor/security/additional-scenarios.md b/aspnetcore/blazor/security/additional-scenarios.md index 7eaf07799273..ad42c86227b1 100644 --- a/aspnetcore/blazor/security/additional-scenarios.md +++ b/aspnetcore/blazor/security/additional-scenarios.md @@ -3,7 +3,7 @@ title: ASP.NET Core server-side and Blazor Web App additional security scenarios author: guardrex description: Learn how to configure server-side Blazor and Blazor Web Apps for additional security scenarios. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 04/29/2025 uid: blazor/security/additional-scenarios diff --git a/aspnetcore/blazor/security/authentication-state.md b/aspnetcore/blazor/security/authentication-state.md index e0c44444d9b4..f0df6ed42bdf 100644 --- a/aspnetcore/blazor/security/authentication-state.md +++ b/aspnetcore/blazor/security/authentication-state.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor authentication state author: guardrex description: Learn how to create a custom authentication state provider and receive notifications of user authentication state changes. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/security/authentication-state diff --git a/aspnetcore/blazor/security/blazor-web-app-with-entra.md b/aspnetcore/blazor/security/blazor-web-app-with-entra.md index 3488a04240e3..7a20c11d7219 100644 --- a/aspnetcore/blazor/security/blazor-web-app-with-entra.md +++ b/aspnetcore/blazor/security/blazor-web-app-with-entra.md @@ -3,7 +3,7 @@ title: Secure an ASP.NET Core Blazor Web App with Microsoft Entra ID author: guardrex description: Learn how to secure a Blazor Web App with Microsoft Entra ID. monikerRange: '>= aspnetcore-9.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 04/29/2025 uid: blazor/security/blazor-web-app-entra diff --git a/aspnetcore/blazor/security/blazor-web-app-with-oidc.md b/aspnetcore/blazor/security/blazor-web-app-with-oidc.md index 6a31ea005ebc..157335a1ac97 100644 --- a/aspnetcore/blazor/security/blazor-web-app-with-oidc.md +++ b/aspnetcore/blazor/security/blazor-web-app-with-oidc.md @@ -3,7 +3,7 @@ title: Secure an ASP.NET Core Blazor Web App with OpenID Connect (OIDC) author: guardrex description: Learn how to secure a Blazor Web App with OpenID Connect (OIDC). monikerRange: '>= aspnetcore-8.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 04/29/2025 uid: blazor/security/blazor-web-app-oidc diff --git a/aspnetcore/blazor/security/blazor-web-app-with-windows-authentication.md b/aspnetcore/blazor/security/blazor-web-app-with-windows-authentication.md index 01fd64130188..0268b5e19377 100644 --- a/aspnetcore/blazor/security/blazor-web-app-with-windows-authentication.md +++ b/aspnetcore/blazor/security/blazor-web-app-with-windows-authentication.md @@ -3,7 +3,7 @@ title: Secure an ASP.NET Core Blazor Web App with Windows Authentication author: guardrex description: Learn how to secure a Blazor Web App with Windows Authentication. monikerRange: '>= aspnetcore-9.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 03/25/2025 uid: blazor/security/blazor-web-app-windows-authentication diff --git a/aspnetcore/blazor/security/content-security-policy.md b/aspnetcore/blazor/security/content-security-policy.md index e284fe731b2e..431c6d2d3771 100644 --- a/aspnetcore/blazor/security/content-security-policy.md +++ b/aspnetcore/blazor/security/content-security-policy.md @@ -3,7 +3,7 @@ title: Enforce a Content Security Policy for ASP.NET Core Blazor author: guardrex description: Learn how to use a Content Security Policy (CSP) with ASP.NET Core Blazor apps to help protect against Cross-Site Scripting (XSS) attacks. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 03/25/2025 uid: blazor/security/content-security-policy diff --git a/aspnetcore/blazor/security/gdpr.md b/aspnetcore/blazor/security/gdpr.md index bb8554b3cde2..4a9994e7d02a 100644 --- a/aspnetcore/blazor/security/gdpr.md +++ b/aspnetcore/blazor/security/gdpr.md @@ -3,7 +3,7 @@ title: EU General Data Protection Regulation (GDPR) support in ASP.NET Core Blaz author: guardrex description: Learn how to implement EU General Data Protection Regulation (GDPR) support in Blazor apps. monikerRange: '>= aspnetcore-6.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 01/16/2025 uid: blazor/security/gdpr diff --git a/aspnetcore/blazor/security/index.md b/aspnetcore/blazor/security/index.md index 2d58c7de6a38..be9946be18f5 100644 --- a/aspnetcore/blazor/security/index.md +++ b/aspnetcore/blazor/security/index.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor authentication and authorization author: guardrex description: Learn about Blazor authentication and authorization scenarios. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/security/index diff --git a/aspnetcore/blazor/security/interactive-server-side-rendering.md b/aspnetcore/blazor/security/interactive-server-side-rendering.md index dbb742a46ef1..201ca46daacd 100644 --- a/aspnetcore/blazor/security/interactive-server-side-rendering.md +++ b/aspnetcore/blazor/security/interactive-server-side-rendering.md @@ -3,7 +3,7 @@ title: Threat mitigation guidance for ASP.NET Core Blazor interactive server-sid author: guardrex description: Learn how to mitigate security threats in interactive server-side Blazor. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/security/interactive-server-side-rendering diff --git a/aspnetcore/blazor/security/qrcodes-for-authenticator-apps.md b/aspnetcore/blazor/security/qrcodes-for-authenticator-apps.md index 5b959f2ee1bf..752f94bac48e 100644 --- a/aspnetcore/blazor/security/qrcodes-for-authenticator-apps.md +++ b/aspnetcore/blazor/security/qrcodes-for-authenticator-apps.md @@ -2,7 +2,7 @@ title: Enable QR code generation for TOTP authenticator apps in an ASP.NET Core Blazor Web App author: guardrex description: Discover how to enable QR code generation for TOTP authenticator apps that work with ASP.NET Core Blazor Web App two-factor authentication. -ms.author: riande +ms.author: wpickett monikerRange: '>= aspnetcore-8.0' ms.date: 11/12/2024 uid: blazor/security/qrcodes-for-authenticator-apps diff --git a/aspnetcore/blazor/security/static-server-side-rendering.md b/aspnetcore/blazor/security/static-server-side-rendering.md index 85e030a6a624..c3283d9a8079 100644 --- a/aspnetcore/blazor/security/static-server-side-rendering.md +++ b/aspnetcore/blazor/security/static-server-side-rendering.md @@ -3,7 +3,7 @@ title: Threat mitigation guidance for ASP.NET Core Blazor static server-side ren author: guardrex description: Learn how to mitigate security threats in static server-side Blazor. monikerRange: '>= aspnetcore-8.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/security/static-server-side-rendering diff --git a/aspnetcore/blazor/security/webassembly/additional-scenarios.md b/aspnetcore/blazor/security/webassembly/additional-scenarios.md index 81d45e32bb1c..bc1c18aef175 100644 --- a/aspnetcore/blazor/security/webassembly/additional-scenarios.md +++ b/aspnetcore/blazor/security/webassembly/additional-scenarios.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor WebAssembly additional security scenarios author: guardrex description: Learn how to configure Blazor WebAssembly for additional security scenarios. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/security/webassembly/additional-scenarios diff --git a/aspnetcore/blazor/security/webassembly/graph-api.md b/aspnetcore/blazor/security/webassembly/graph-api.md index e459e90051f7..2bfdf2aea506 100644 --- a/aspnetcore/blazor/security/webassembly/graph-api.md +++ b/aspnetcore/blazor/security/webassembly/graph-api.md @@ -3,7 +3,7 @@ title: Use Graph API with ASP.NET Core Blazor WebAssembly author: guardrex description: Learn how to use the Microsoft Graph SDK/API with Blazor WebAssembly apps. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/security/webassembly/graph-api diff --git a/aspnetcore/blazor/security/webassembly/hosted-with-azure-active-directory-b2c.md b/aspnetcore/blazor/security/webassembly/hosted-with-azure-active-directory-b2c.md index e382d2c86c07..4a0d233745c4 100644 --- a/aspnetcore/blazor/security/webassembly/hosted-with-azure-active-directory-b2c.md +++ b/aspnetcore/blazor/security/webassembly/hosted-with-azure-active-directory-b2c.md @@ -3,7 +3,7 @@ title: Secure a hosted ASP.NET Core Blazor WebAssembly app with Azure Active Dir author: guardrex description: Learn how to secure a hosted ASP.NET Core Blazor WebAssembly app with Azure Active Directory B2C. monikerRange: '>= aspnetcore-3.1 < aspnetcore-8.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 04/07/2025 uid: blazor/security/webassembly/hosted-with-azure-active-directory-b2c diff --git a/aspnetcore/blazor/security/webassembly/hosted-with-identity-server.md b/aspnetcore/blazor/security/webassembly/hosted-with-identity-server.md index 23beb7de9be6..d1eda5a8eb15 100644 --- a/aspnetcore/blazor/security/webassembly/hosted-with-identity-server.md +++ b/aspnetcore/blazor/security/webassembly/hosted-with-identity-server.md @@ -3,7 +3,7 @@ title: Secure a hosted ASP.NET Core Blazor WebAssembly app with Identity Server author: guardrex description: Learn how to secure a hosted ASP.NET Core Blazor WebAssembly app with Identity Server. monikerRange: '>= aspnetcore-3.1 < aspnetcore-8.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc, linux-related-content ms.date: 04/07/2025 uid: blazor/security/webassembly/hosted-with-identity-server diff --git a/aspnetcore/blazor/security/webassembly/hosted-with-microsoft-entra-id.md b/aspnetcore/blazor/security/webassembly/hosted-with-microsoft-entra-id.md index 89e876247f1c..626978acbeb2 100644 --- a/aspnetcore/blazor/security/webassembly/hosted-with-microsoft-entra-id.md +++ b/aspnetcore/blazor/security/webassembly/hosted-with-microsoft-entra-id.md @@ -3,7 +3,7 @@ title: Secure a hosted ASP.NET Core Blazor WebAssembly app with Microsoft Entra author: guardrex description: Learn how to secure a hosted ASP.NET Core Blazor WebAssembly app with Microsoft Entra ID. monikerRange: '>= aspnetcore-3.1 < aspnetcore-8.0' -ms.author: riande +ms.author: wpickett ms.custom: "devx-track-csharp, mvc" ms.date: 04/07/2025 uid: blazor/security/webassembly/hosted-with-microsoft-entra-id diff --git a/aspnetcore/blazor/security/webassembly/index.md b/aspnetcore/blazor/security/webassembly/index.md index 4fbd3d3f80fc..b23ad65e55d9 100644 --- a/aspnetcore/blazor/security/webassembly/index.md +++ b/aspnetcore/blazor/security/webassembly/index.md @@ -3,7 +3,7 @@ title: Secure ASP.NET Core Blazor WebAssembly author: guardrex description: Learn how to secure Blazor WebAssembly apps as single-page applications (SPAs). monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/security/webassembly/index diff --git a/aspnetcore/blazor/security/webassembly/microsoft-entra-id-groups-and-roles-net-5-to-7.md b/aspnetcore/blazor/security/webassembly/microsoft-entra-id-groups-and-roles-net-5-to-7.md index 805d7c8bd517..8abc9266d526 100644 --- a/aspnetcore/blazor/security/webassembly/microsoft-entra-id-groups-and-roles-net-5-to-7.md +++ b/aspnetcore/blazor/security/webassembly/microsoft-entra-id-groups-and-roles-net-5-to-7.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor WebAssembly with Microsoft Entra ID groups and roles author: guardrex description: Learn how to configure Blazor WebAssembly to use Microsoft Entra ID groups and roles. monikerRange: '>= aspnetcore-5.0 < aspnetcore-8.0' -ms.author: riande +ms.author: wpickett ms.custom: "devx-track-csharp, mvc" ms.date: 11/12/2024 uid: blazor/security/webassembly/meid-groups-roles-net5to7 diff --git a/aspnetcore/blazor/security/webassembly/microsoft-entra-id-groups-and-roles.md b/aspnetcore/blazor/security/webassembly/microsoft-entra-id-groups-and-roles.md index a9159dd406b5..2d2a356dbd58 100644 --- a/aspnetcore/blazor/security/webassembly/microsoft-entra-id-groups-and-roles.md +++ b/aspnetcore/blazor/security/webassembly/microsoft-entra-id-groups-and-roles.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor WebAssembly with Microsoft Entra ID groups and roles author: guardrex description: Learn how to configure Blazor WebAssembly to use Microsoft Entra ID groups and roles. monikerRange: '>= aspnetcore-8.0' -ms.author: riande +ms.author: wpickett ms.custom: "devx-track-csharp, mvc" ms.date: 11/12/2024 uid: blazor/security/webassembly/meid-groups-roles diff --git a/aspnetcore/blazor/security/webassembly/standalone-with-authentication-library.md b/aspnetcore/blazor/security/webassembly/standalone-with-authentication-library.md index 07b5ccd07b7b..9a6df6663f56 100644 --- a/aspnetcore/blazor/security/webassembly/standalone-with-authentication-library.md +++ b/aspnetcore/blazor/security/webassembly/standalone-with-authentication-library.md @@ -3,7 +3,7 @@ title: Secure an ASP.NET Core Blazor WebAssembly standalone app with the Authent author: guardrex description: Learn how to secure an ASP.NET Core Blazor WebAssembly standalone app with the Blazor WebAssembly Authentication library. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 04/07/2025 uid: blazor/security/webassembly/standalone-with-authentication-library diff --git a/aspnetcore/blazor/security/webassembly/standalone-with-azure-active-directory-b2c.md b/aspnetcore/blazor/security/webassembly/standalone-with-azure-active-directory-b2c.md index bad7dce275eb..c842cda05e34 100644 --- a/aspnetcore/blazor/security/webassembly/standalone-with-azure-active-directory-b2c.md +++ b/aspnetcore/blazor/security/webassembly/standalone-with-azure-active-directory-b2c.md @@ -3,7 +3,7 @@ title: Secure an ASP.NET Core Blazor WebAssembly standalone app with Azure Activ author: guardrex description: Learn how to secure an ASP.NET Core Blazor WebAssembly standalone app with Azure Active Directory B2C. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 04/07/2025 uid: blazor/security/webassembly/standalone-with-azure-active-directory-b2c diff --git a/aspnetcore/blazor/security/webassembly/standalone-with-identity/account-confirmation-and-password-recovery.md b/aspnetcore/blazor/security/webassembly/standalone-with-identity/account-confirmation-and-password-recovery.md index c97e04cbc00e..a23359e2a461 100644 --- a/aspnetcore/blazor/security/webassembly/standalone-with-identity/account-confirmation-and-password-recovery.md +++ b/aspnetcore/blazor/security/webassembly/standalone-with-identity/account-confirmation-and-password-recovery.md @@ -2,7 +2,7 @@ title: Account confirmation and password recovery in ASP.NET Core Blazor WebAssembly with ASP.NET Core Identity author: guardrex description: Learn how to configure an ASP.NET Core Blazor WebAssembly app with ASP.NET Core Identity with email confirmation and password recovery. -ms.author: riande +ms.author: wpickett monikerRange: '>= aspnetcore-8.0' ms.date: 11/21/2024 uid: blazor/security/webassembly/standalone-with-identity/account-confirmation-and-password-recovery diff --git a/aspnetcore/blazor/security/webassembly/standalone-with-identity/index.md b/aspnetcore/blazor/security/webassembly/standalone-with-identity/index.md index 46ca708b6221..3839ced9e085 100644 --- a/aspnetcore/blazor/security/webassembly/standalone-with-identity/index.md +++ b/aspnetcore/blazor/security/webassembly/standalone-with-identity/index.md @@ -3,7 +3,7 @@ title: Secure ASP.NET Core Blazor WebAssembly with ASP.NET Core Identity author: guardrex description: Learn how to secure Blazor WebAssembly apps with ASP.NET Core Identity. monikerRange: '>= aspnetcore-8.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/security/webassembly/standalone-with-identity/index diff --git a/aspnetcore/blazor/security/webassembly/standalone-with-identity/qrcodes-for-authenticator-apps.md b/aspnetcore/blazor/security/webassembly/standalone-with-identity/qrcodes-for-authenticator-apps.md index 2634adf5b16d..bb46d049c25c 100644 --- a/aspnetcore/blazor/security/webassembly/standalone-with-identity/qrcodes-for-authenticator-apps.md +++ b/aspnetcore/blazor/security/webassembly/standalone-with-identity/qrcodes-for-authenticator-apps.md @@ -2,7 +2,7 @@ title: Enable QR code generation for TOTP authenticator apps in ASP.NET Core Blazor WebAssembly with ASP.NET Core Identity author: guardrex description: Learn how to configure an ASP.NET Core Blazor WebAssembly app with Identity for QR code generation with TOTP authenticator apps. -ms.author: riande +ms.author: wpickett monikerRange: '>= aspnetcore-8.0' ms.date: 11/21/2024 uid: blazor/security/webassembly/standalone-with-identity/qrcodes-for-authenticator-apps diff --git a/aspnetcore/blazor/security/webassembly/standalone-with-microsoft-accounts.md b/aspnetcore/blazor/security/webassembly/standalone-with-microsoft-accounts.md index 5f413aa2c8b5..ebdde4c0b9b9 100644 --- a/aspnetcore/blazor/security/webassembly/standalone-with-microsoft-accounts.md +++ b/aspnetcore/blazor/security/webassembly/standalone-with-microsoft-accounts.md @@ -3,7 +3,7 @@ title: Secure an ASP.NET Core Blazor WebAssembly standalone app with Microsoft A author: guardrex description: Learn how to secure an ASP.NET Core Blazor WebAssembly standalone app with Microsoft Accounts. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 04/07/2025 uid: blazor/security/webassembly/standalone-with-microsoft-accounts diff --git a/aspnetcore/blazor/security/webassembly/standalone-with-microsoft-entra-id.md b/aspnetcore/blazor/security/webassembly/standalone-with-microsoft-entra-id.md index 6473b8121955..8b2b3c1601e0 100644 --- a/aspnetcore/blazor/security/webassembly/standalone-with-microsoft-entra-id.md +++ b/aspnetcore/blazor/security/webassembly/standalone-with-microsoft-entra-id.md @@ -3,7 +3,7 @@ title: Secure an ASP.NET Core Blazor WebAssembly standalone app with Microsoft E author: guardrex description: Learn how to secure an ASP.NET Core Blazor WebAssembly standalone app with Microsoft Entra ID. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: "devx-track-csharp, mvc" ms.date: 04/07/2025 uid: blazor/security/webassembly/standalone-with-microsoft-entra-id diff --git a/aspnetcore/blazor/state-management.md b/aspnetcore/blazor/state-management.md index 2bb3aa6e8fb2..9e252c93869b 100644 --- a/aspnetcore/blazor/state-management.md +++ b/aspnetcore/blazor/state-management.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor state management author: guardrex description: Learn how to persist user data (state) in Blazor apps. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/state-management diff --git a/aspnetcore/blazor/supported-platforms.md b/aspnetcore/blazor/supported-platforms.md index 78cb7b0b860c..43f0f97021d5 100644 --- a/aspnetcore/blazor/supported-platforms.md +++ b/aspnetcore/blazor/supported-platforms.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor supported platforms author: guardrex description: Learn about the supported platforms for ASP.NET Core Blazor. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/supported-platforms diff --git a/aspnetcore/blazor/test.md b/aspnetcore/blazor/test.md index bd40a33b751d..8ec075431305 100644 --- a/aspnetcore/blazor/test.md +++ b/aspnetcore/blazor/test.md @@ -3,7 +3,7 @@ title: Test Razor components in ASP.NET Core Blazor author: guardrex description: Learn how to test Razor components in Blazor apps. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/test diff --git a/aspnetcore/blazor/tooling.md b/aspnetcore/blazor/tooling.md index 53740e9cdf1b..95e7adda757f 100644 --- a/aspnetcore/blazor/tooling.md +++ b/aspnetcore/blazor/tooling.md @@ -3,7 +3,7 @@ title: Tooling for ASP.NET Core Blazor author: guardrex description: Learn about the tools available to build Blazor apps and how to use them. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/tooling diff --git a/aspnetcore/blazor/tutorials/build-a-blazor-app.md b/aspnetcore/blazor/tutorials/build-a-blazor-app.md index 0d8e4cd462d7..f13a028014d2 100644 --- a/aspnetcore/blazor/tutorials/build-a-blazor-app.md +++ b/aspnetcore/blazor/tutorials/build-a-blazor-app.md @@ -3,7 +3,7 @@ title: Build a Blazor todo list app author: guardrex description: Build a Blazor app step-by-step. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/tutorials/build-a-blazor-app diff --git a/aspnetcore/blazor/tutorials/index.md b/aspnetcore/blazor/tutorials/index.md index b280107f0644..98f59b0de090 100644 --- a/aspnetcore/blazor/tutorials/index.md +++ b/aspnetcore/blazor/tutorials/index.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor tutorials author: guardrex description: Learn how to build Blazor apps with the tutorials listed in this article. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/tutorials/index diff --git a/aspnetcore/blazor/tutorials/movie-database-app/index.md b/aspnetcore/blazor/tutorials/movie-database-app/index.md index 490a5d58bb0c..2f3de5f8fd4e 100644 --- a/aspnetcore/blazor/tutorials/movie-database-app/index.md +++ b/aspnetcore/blazor/tutorials/movie-database-app/index.md @@ -2,7 +2,7 @@ title: Build a Blazor movie database app (Overview) author: guardrex description: This tutorial explains the basics of building a Blazor Web App with a database, Entity Framework (EF) Core, and user interactivity. -ms.author: riande +ms.author: wpickett ms.date: 11/12/2024 monikerRange: '>= aspnetcore-8.0' ms.custom: mvc diff --git a/aspnetcore/blazor/tutorials/movie-database-app/part-1.md b/aspnetcore/blazor/tutorials/movie-database-app/part-1.md index cda5e6cc3a35..768ecb3b5e34 100644 --- a/aspnetcore/blazor/tutorials/movie-database-app/part-1.md +++ b/aspnetcore/blazor/tutorials/movie-database-app/part-1.md @@ -3,7 +3,7 @@ title: Build a Blazor movie database app (Part 1 - Create a Blazor Web App) author: guardrex description: This part of the Blazor movie database app tutorial explains how to create a Blazor Web App that adopts static server-side rendering (static SSR), where content is only rendered on the server. monikerRange: '>= aspnetcore-8.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/tutorials/movie-database-app/part-1 diff --git a/aspnetcore/blazor/tutorials/movie-database-app/part-2.md b/aspnetcore/blazor/tutorials/movie-database-app/part-2.md index 3d08cf6642e8..f2d0f4f960d2 100644 --- a/aspnetcore/blazor/tutorials/movie-database-app/part-2.md +++ b/aspnetcore/blazor/tutorials/movie-database-app/part-2.md @@ -3,7 +3,7 @@ title: Build a Blazor movie database app (Part 2 - Add and scaffold a model) author: guardrex description: This part of the Blazor movie database app tutorial explains how to add a movie class to the app and scaffold the database and UI from the movie class. monikerRange: '>= aspnetcore-8.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/tutorials/movie-database-app/part-2 diff --git a/aspnetcore/blazor/tutorials/movie-database-app/part-3.md b/aspnetcore/blazor/tutorials/movie-database-app/part-3.md index f30e086eb487..f95bbfc596d8 100644 --- a/aspnetcore/blazor/tutorials/movie-database-app/part-3.md +++ b/aspnetcore/blazor/tutorials/movie-database-app/part-3.md @@ -3,7 +3,7 @@ title: Build a Blazor movie database app (Part 3 - Learn about Razor components) author: guardrex description: This part of the Blazor movie database app tutorial explains the Razor components in the project that were scaffolded into the app. Improvements are made to the display of movie data. monikerRange: '>= aspnetcore-8.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/tutorials/movie-database-app/part-3 diff --git a/aspnetcore/blazor/tutorials/movie-database-app/part-4.md b/aspnetcore/blazor/tutorials/movie-database-app/part-4.md index f5f5a17e1661..ca97081893e3 100644 --- a/aspnetcore/blazor/tutorials/movie-database-app/part-4.md +++ b/aspnetcore/blazor/tutorials/movie-database-app/part-4.md @@ -3,7 +3,7 @@ title: Build a Blazor movie database app (Part 4 - Work with a database) author: guardrex description: This part of the Blazor movie database app tutorial explains the database context and directly working with the database's schema and data. Seeding the database with data is also covered. monikerRange: '>= aspnetcore-8.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/tutorials/movie-database-app/part-4 diff --git a/aspnetcore/blazor/tutorials/movie-database-app/part-5.md b/aspnetcore/blazor/tutorials/movie-database-app/part-5.md index 5d8a9e6845e9..cce182323e57 100644 --- a/aspnetcore/blazor/tutorials/movie-database-app/part-5.md +++ b/aspnetcore/blazor/tutorials/movie-database-app/part-5.md @@ -3,7 +3,7 @@ title: Build a Blazor movie database app (Part 5 - Add validation) author: guardrex description: This part of the Blazor movie database app tutorial explains how metadata (data annotations) of the movie model is used to validate user input in the forms that create and edit movies. monikerRange: '>= aspnetcore-8.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/tutorials/movie-database-app/part-5 diff --git a/aspnetcore/blazor/tutorials/movie-database-app/part-6.md b/aspnetcore/blazor/tutorials/movie-database-app/part-6.md index 6025435cf6d2..e4ea174683b6 100644 --- a/aspnetcore/blazor/tutorials/movie-database-app/part-6.md +++ b/aspnetcore/blazor/tutorials/movie-database-app/part-6.md @@ -3,7 +3,7 @@ title: Build a Blazor movie database app (Part 6 - Add search) author: guardrex description: This part of the Blazor movie database app tutorial explains how to add a search feature to filter movies by title. monikerRange: '>= aspnetcore-8.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/tutorials/movie-database-app/part-6 diff --git a/aspnetcore/blazor/tutorials/movie-database-app/part-7.md b/aspnetcore/blazor/tutorials/movie-database-app/part-7.md index 46553baa6348..fa5a143417f2 100644 --- a/aspnetcore/blazor/tutorials/movie-database-app/part-7.md +++ b/aspnetcore/blazor/tutorials/movie-database-app/part-7.md @@ -3,7 +3,7 @@ title: Build a Blazor movie database app (Part 7 - Add a new field) author: guardrex description: This part of the Blazor movie database app tutorial explains how to add a new field to the movie class, CRUD pages, and database. monikerRange: '>= aspnetcore-8.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/tutorials/movie-database-app/part-7 diff --git a/aspnetcore/blazor/tutorials/movie-database-app/part-8.md b/aspnetcore/blazor/tutorials/movie-database-app/part-8.md index 8a48f99e244b..f9e39d3d8288 100644 --- a/aspnetcore/blazor/tutorials/movie-database-app/part-8.md +++ b/aspnetcore/blazor/tutorials/movie-database-app/part-8.md @@ -3,7 +3,7 @@ title: Build a Blazor movie database app (Part 8 - Add interactivity) author: guardrex description: This part of the Blazor movie database app tutorial explains how to adopt interactive SSR rendering in the app. monikerRange: '>= aspnetcore-8.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/tutorials/movie-database-app/part-8 diff --git a/aspnetcore/blazor/tutorials/signalr-blazor.md b/aspnetcore/blazor/tutorials/signalr-blazor.md index 82c0d4b77024..c5061a21ca17 100644 --- a/aspnetcore/blazor/tutorials/signalr-blazor.md +++ b/aspnetcore/blazor/tutorials/signalr-blazor.md @@ -3,7 +3,7 @@ title: Use ASP.NET Core SignalR with Blazor author: guardrex description: Create a chat app that uses ASP.NET Core SignalR with Blazor. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/tutorials/signalr-blazor diff --git a/aspnetcore/blazor/webassembly-build-tools-and-aot.md b/aspnetcore/blazor/webassembly-build-tools-and-aot.md index 44947912185b..2973d0585384 100644 --- a/aspnetcore/blazor/webassembly-build-tools-and-aot.md +++ b/aspnetcore/blazor/webassembly-build-tools-and-aot.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor WebAssembly build tools and ahead-of-time (AOT) compi author: guardrex description: Learn about the WebAssembly build tools and how to compile a Blazor WebAssembly app ahead of deployment with ahead-of-time (AOT) compilation. monikerRange: '>= aspnetcore-6.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/tooling/webassembly diff --git a/aspnetcore/blazor/webassembly-lazy-load-assemblies.md b/aspnetcore/blazor/webassembly-lazy-load-assemblies.md index e1f857aac198..63c6547d7536 100644 --- a/aspnetcore/blazor/webassembly-lazy-load-assemblies.md +++ b/aspnetcore/blazor/webassembly-lazy-load-assemblies.md @@ -3,7 +3,7 @@ title: Lazy load assemblies in ASP.NET Core Blazor WebAssembly author: guardrex description: Discover how to lazy load assemblies in Blazor WebAssembly apps. monikerRange: '>= aspnetcore-5.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/webassembly-lazy-load-assemblies diff --git a/aspnetcore/blazor/webassembly-native-dependencies.md b/aspnetcore/blazor/webassembly-native-dependencies.md index 13ed3f1b7d60..5f7959cb07bd 100644 --- a/aspnetcore/blazor/webassembly-native-dependencies.md +++ b/aspnetcore/blazor/webassembly-native-dependencies.md @@ -3,7 +3,7 @@ title: ASP.NET Core Blazor WebAssembly native dependencies author: guardrex description: Learn how to build Blazor WebAssembly apps with native dependencies built to run on WebAssembly in the browser. monikerRange: '>= aspnetcore-6.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 11/12/2024 uid: blazor/webassembly-native-dependencies diff --git a/aspnetcore/client-side/dotnet-interop.md b/aspnetcore/client-side/dotnet-interop.md index 0ee8dfefee37..7907c69075e6 100644 --- a/aspnetcore/client-side/dotnet-interop.md +++ b/aspnetcore/client-side/dotnet-interop.md @@ -3,7 +3,7 @@ title: JavaScript `[JSImport]`/`[JSExport]` interop author: pavelsavara description: Learn how to run .NET from JS with [JSImport]/[JSExport] interop in a WebAssembly Browser App project. monikerRange: '>= aspnetcore-7.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 07/25/2024 uid: client-side/dotnet-interop diff --git a/aspnetcore/client-side/dotnet-interop/index.md b/aspnetcore/client-side/dotnet-interop/index.md index 9feb84cc1456..f418a350b74e 100644 --- a/aspnetcore/client-side/dotnet-interop/index.md +++ b/aspnetcore/client-side/dotnet-interop/index.md @@ -3,7 +3,7 @@ title: JavaScript `[JSImport]`/`[JSExport]` interop in .NET WebAssembly author: pavelsavara description: Learn how to run .NET from JavaScript with [JSImport]/[JSExport] interop. monikerRange: '>= aspnetcore-7.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 08/08/2024 uid: client-side/dotnet-interop/index diff --git a/aspnetcore/client-side/dotnet-interop/wasm-browser-app.md b/aspnetcore/client-side/dotnet-interop/wasm-browser-app.md index 847788611375..045f8b0b68da 100644 --- a/aspnetcore/client-side/dotnet-interop/wasm-browser-app.md +++ b/aspnetcore/client-side/dotnet-interop/wasm-browser-app.md @@ -3,7 +3,7 @@ title: JavaScript `[JSImport]`/`[JSExport]` interop with a WebAssembly Browser A author: pavelsavara description: Learn how to run .NET from JavaScript with [JSImport]/[JSExport] interop in a WebAssembly Browser App project. monikerRange: '>= aspnetcore-7.0' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 07/25/2024 uid: client-side/dotnet-interop/wasm-browser-app diff --git a/aspnetcore/diagnostics/bl0001.md b/aspnetcore/diagnostics/bl0001.md index f10992c5bbd2..a392f54c6f66 100644 --- a/aspnetcore/diagnostics/bl0001.md +++ b/aspnetcore/diagnostics/bl0001.md @@ -3,7 +3,7 @@ title: "BL0001: Component parameter should have public setters" description: "Learn about analysis rule BL0001: Component parameter should have public setters" author: guardrex monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.date: 10/21/2021 uid: diagnostics/bl0001 --- diff --git a/aspnetcore/diagnostics/bl0002.md b/aspnetcore/diagnostics/bl0002.md index 86ca758dda24..c1475fd1b3f4 100644 --- a/aspnetcore/diagnostics/bl0002.md +++ b/aspnetcore/diagnostics/bl0002.md @@ -3,7 +3,7 @@ title: "BL0002: Component has multiple CaptureUnmatchedValues parameters" description: "Learn about analysis rule BL0002: Component has multiple CaptureUnmatchedValues parameters" author: guardrex monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.date: 10/21/2021 uid: diagnostics/bl0002 --- diff --git a/aspnetcore/diagnostics/bl0003.md b/aspnetcore/diagnostics/bl0003.md index d2f80d37ac0c..79b82ca21391 100644 --- a/aspnetcore/diagnostics/bl0003.md +++ b/aspnetcore/diagnostics/bl0003.md @@ -3,7 +3,7 @@ title: "BL0003: Component parameter with CaptureUnmatchedValues has the wrong ty description: "Learn about analysis rule BL0003: Component parameter with CaptureUnmatchedValues has the wrong type" author: guardrex monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.date: 10/21/2021 uid: diagnostics/bl0003 --- diff --git a/aspnetcore/diagnostics/bl0004.md b/aspnetcore/diagnostics/bl0004.md index 6629468966eb..70d2d3526b8e 100644 --- a/aspnetcore/diagnostics/bl0004.md +++ b/aspnetcore/diagnostics/bl0004.md @@ -3,7 +3,7 @@ title: "BL0004: Component parameter should be public" description: "Learn about analysis rule BL0004: Component parameter should be public" author: guardrex monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.date: 10/21/2021 uid: diagnostics/bl0004 --- diff --git a/aspnetcore/diagnostics/bl0005.md b/aspnetcore/diagnostics/bl0005.md index 9d8bff7ae688..75599b9ffbd8 100644 --- a/aspnetcore/diagnostics/bl0005.md +++ b/aspnetcore/diagnostics/bl0005.md @@ -3,7 +3,7 @@ title: "BL0005: Component parameter should not be set outside of its component" description: "Learn about analysis rule BL0005: Component parameter should not be set outside of its component" author: guardrex monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.date: 10/21/2021 uid: diagnostics/bl0005 --- diff --git a/aspnetcore/diagnostics/bl0006.md b/aspnetcore/diagnostics/bl0006.md index c244f47237b8..be3405fbfe97 100644 --- a/aspnetcore/diagnostics/bl0006.md +++ b/aspnetcore/diagnostics/bl0006.md @@ -3,7 +3,7 @@ title: "BL0006: Do not use RenderTree types" description: "Learn about analysis rule BL0006: Do not use RenderTree types" author: guardrex monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.date: 10/21/2021 uid: diagnostics/bl0006 --- diff --git a/aspnetcore/diagnostics/bl0007.md b/aspnetcore/diagnostics/bl0007.md index 5d1f22f80b83..e7e60fdaf6a2 100644 --- a/aspnetcore/diagnostics/bl0007.md +++ b/aspnetcore/diagnostics/bl0007.md @@ -3,7 +3,7 @@ title: "BL0007: Component parameter '{0}' should be auto property" description: "Learn about analysis rule BL0007: Component parameter '{0}' should be auto property" author: guardrex monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.date: 04/07/2025 uid: diagnostics/bl0007 --- diff --git a/aspnetcore/docfx.json b/aspnetcore/docfx.json index 408116c7b491..a06befbca72b 100644 --- a/aspnetcore/docfx.json +++ b/aspnetcore/docfx.json @@ -80,6 +80,7 @@ "**/blazor/hybrid/**/**.md": "blazor-hybrid", "**/client-side/dotnet-interop/index.md": "blazor", "**/client-side/dotnet-interop/wasm-browser-app.md": "blazor", + "**/client-side/dotnet-interop/dotnet-interop.md": "blazor", "**/mvc/views/tag-helpers/built-in/component-tag-helper.md": "blazor", "**/mvc/views/tag-helpers/built-in/persist-component-state.md": "blazor" }, diff --git a/aspnetcore/mvc/views/tag-helpers/built-in/component-tag-helper.md b/aspnetcore/mvc/views/tag-helpers/built-in/component-tag-helper.md index 65c72e56e105..81728361d92c 100644 --- a/aspnetcore/mvc/views/tag-helpers/built-in/component-tag-helper.md +++ b/aspnetcore/mvc/views/tag-helpers/built-in/component-tag-helper.md @@ -1,7 +1,7 @@ --- title: Component Tag Helper in ASP.NET Core author: guardrex -ms.author: riande +ms.author: wpickett description: Learn how to use the ASP.NET Core Component Tag Helper to render Razor components in pages and views. monikerRange: '>= aspnetcore-3.1' ms.custom: mvc diff --git a/aspnetcore/mvc/views/tag-helpers/built-in/persist-component-state.md b/aspnetcore/mvc/views/tag-helpers/built-in/persist-component-state.md index 7f243b902a49..b002589f0fee 100644 --- a/aspnetcore/mvc/views/tag-helpers/built-in/persist-component-state.md +++ b/aspnetcore/mvc/views/tag-helpers/built-in/persist-component-state.md @@ -1,7 +1,7 @@ --- title: Persist Component State Tag Helper in ASP.NET Core author: guardrex -ms.author: riande +ms.author: wpickett description: Learn how to use the ASP.NET Core Persist Component State Tag Helper to persist state when prerendering components. monikerRange: '>= aspnetcore-6.0' ms.custom: mvc diff --git a/aspnetcore/signalr/httpcontext.md b/aspnetcore/signalr/httpcontext.md index 3683cae80538..19abf5545f8e 100644 --- a/aspnetcore/signalr/httpcontext.md +++ b/aspnetcore/signalr/httpcontext.md @@ -3,7 +3,7 @@ title: IHttpContextAccessor/HttpContext in ASP.NET Core SignalR author: guardrex description: Learn about IHttpContextAccessor and HttpContext in ASP.NET Core SignalR. monikerRange: '>= aspnetcore-3.1' -ms.author: riande +ms.author: wpickett ms.custom: mvc ms.date: 01/30/2025 uid: signalr/httpcontext From 09a88c0086c0a2fa13895ed6a2c7714159bef6e5 Mon Sep 17 00:00:00 2001 From: Wade Pickett Date: Wed, 14 May 2025 15:38:35 -0700 Subject: [PATCH 3/4] Prep Only: Customize OpenAPI: Update v10p4 OpenAPISchemas (#35471) * Prep Only: Customize OpenAPI: Update v10 Prev 4 OpenAPISchemas in transformers --- .../fundamentals/openapi/customize-openapi.md | 20 +- .../openapi/includes/customize-openapi9.md | 152 +++++ .../samples/10.x/WebMinOpenApi/.spectral.yaml | 1 + .../samples/10.x/WebMinOpenApi/Program.cs | 544 ++++++++++++++++++ .../10.x/WebMinOpenApi/WebMinOpenApi.csproj | 27 + .../10.x/WebMinOpenApi/WebMinOpenApi.json | 37 ++ .../appsettings.Development.json | 8 + .../10.x/WebMinOpenApi/appsettings.json | 9 + .../samples/10.x/WebMinOpenApi/global.json | 5 + .../10.x/WebMinOpenApi/my-open-api.json | 37 ++ .../samples/10.x/WebMinOpenApi/nuget.config | 8 + .../10.x/WebMinOpenApi/projectFile.xml | 22 + 12 files changed, 863 insertions(+), 7 deletions(-) create mode 100644 aspnetcore/fundamentals/openapi/includes/customize-openapi9.md create mode 100644 aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/.spectral.yaml create mode 100644 aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/Program.cs create mode 100644 aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/WebMinOpenApi.csproj create mode 100644 aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/WebMinOpenApi.json create mode 100644 aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/appsettings.Development.json create mode 100644 aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/appsettings.json create mode 100644 aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/global.json create mode 100644 aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/my-open-api.json create mode 100644 aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/nuget.config create mode 100644 aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/projectFile.xml diff --git a/aspnetcore/fundamentals/openapi/customize-openapi.md b/aspnetcore/fundamentals/openapi/customize-openapi.md index 00df6eb53ce6..0d7b22ecf983 100644 --- a/aspnetcore/fundamentals/openapi/customize-openapi.md +++ b/aspnetcore/fundamentals/openapi/customize-openapi.md @@ -10,6 +10,8 @@ uid: fundamentals/openapi/customize-openapi --- # Customize OpenAPI documents +:::moniker range=">= aspnetcore-10.0" + ## OpenAPI document transformers @@ -38,7 +40,7 @@ Transformers can be registered onto the document by calling the . * Register a schema transformer using a DI-activated . -[!code-csharp[](~/fundamentals/openapi/samples/9.x/WebMinOpenApi/Program.cs?name=snippet_transUse&highlight=8-19)] +[!code-csharp[](~/fundamentals/openapi/samples/10.x/WebMinOpenApi/Program.cs?name=snippet_transUse&highlight=8-19)] ### Execution order for transformers @@ -58,7 +60,7 @@ For example, in the following snippet: * Both `DocumentTransformer1` and `DocumentTransformer2` are executed after all operations and schemas have been added to the document, so they have access to all modifications made by the operation and schema transformers. * `DocumentTransformer2` is executed after `DocumentTransformer1`, so it has access to the modifications made by `DocumentTransformer1`. -[!code-csharp[](~/fundamentals/openapi/samples/9.x/WebMinOpenApi/Program.cs?name=snippet_transInOut&highlight=6-14)] +[!code-csharp[](~/fundamentals/openapi/samples/10.x/WebMinOpenApi/Program.cs?name=snippet_transInOut&highlight=6-14)] ## Use document transformers @@ -70,18 +72,18 @@ Document transformers have access to a context object that includes: Document transformers can also mutate the OpenAPI document that is generated. The following example demonstrates a document transformer that adds some information about the API to the OpenAPI document. -[!code-csharp[](~/fundamentals/openapi/samples/9.x/WebMinOpenApi/Program.cs?name=snippet_documenttransformer1)] +[!code-csharp[](~/fundamentals/openapi/samples/10.x/WebMinOpenApi/Program.cs?name=snippet_documenttransformer1)] Service-activated document transformers can utilize instances from DI to modify the app. The following sample demonstrates a document transformer that uses the service from the authentication layer. It checks if any JWT bearer-related schemes are registered in the app and adds them to the OpenAPI document's top level: -[!code-csharp[](~/fundamentals/openapi/samples/9.x/WebMinOpenApi/Program.cs?name=snippet_documenttransformer2)] +[!code-csharp[](~/fundamentals/openapi/samples/10.x/WebMinOpenApi/Program.cs?name=snippet_documenttransformer2)] Document transformers are unique to the document instance they're associated with. In the following example, a transformer: * Registers authentication-related requirements to the `internal` document. * Leaves the `public` document unmodified. -[!code-csharp[](~/fundamentals/openapi/samples/9.x/WebMinOpenApi/Program.cs?name=snippet_multidoc_operationtransformer1)] +[!code-csharp[](~/fundamentals/openapi/samples/10.x/WebMinOpenApi/Program.cs?name=snippet_multidoc_operationtransformer1)] ## Use operation transformers @@ -98,7 +100,7 @@ Operation transformers have access to a context object which contains: For example, the following operation transformer adds `500` as a response status code supported by all operations in the document. -[!code-csharp[](~/fundamentals/openapi/samples/9.x/WebMinOpenApi/Program.cs?name=snippet_operationtransformer1)] +[!code-csharp[](~/fundamentals/openapi/samples/10.x/WebMinOpenApi/Program.cs?name=snippet_operationtransformer1)] ## Use schema transformers @@ -115,7 +117,7 @@ Schema transformers have access to a context object which contains: For example, the following schema transformer sets the `format` of decimal types to `decimal` instead of `double`: -[!code-csharp[](~/fundamentals/openapi/samples/9.x/WebMinOpenApi/Program.cs?name=snippet_schematransformer1)] +[!code-csharp[](~/fundamentals/openapi/samples/10.x/WebMinOpenApi/Program.cs?name=snippet_schematransformer1)] ## Customize schema reuse @@ -158,3 +160,7 @@ builder.Services.AddOpenApi(options => * * [OpenAPI specification](https://spec.openapis.org/oas/v3.0.3) + +:::moniker-end + +[!INCLUDE[](~/fundamentals/openapi/includes/customize-openapi9.md)] diff --git a/aspnetcore/fundamentals/openapi/includes/customize-openapi9.md b/aspnetcore/fundamentals/openapi/includes/customize-openapi9.md new file mode 100644 index 000000000000..e838bc402642 --- /dev/null +++ b/aspnetcore/fundamentals/openapi/includes/customize-openapi9.md @@ -0,0 +1,152 @@ +:::moniker range="= aspnetcore-9.0" + + + +## OpenAPI document transformers + +Transformers provide an API for modifying the OpenAPI document with user-defined customizations. Transformers are useful for scenarios like: + +* Adding parameters to all operations in a document. +* Modifying descriptions for parameters or operations. +* Adding top-level information to the OpenAPI document. + +Transformers fall into three categories: + +* Document transformers have access to the entire OpenAPI document. These can be used to make global modifications to the document. +* Operation transformers apply to each individual operation. Each individual operation is a combination of path and HTTP method. These can be used to modify parameters or responses on endpoints. +* Schema transformers apply to each schema in the document. These can be used to modify the schema of request or response bodies, or any nested schemas. + +Transformers can be registered onto the document by calling the method on the object. The following snippet shows different ways to register transformers onto the document: + +* Register a document transformer using a delegate. +* Register a document transformer using an instance of . +* Register a document transformer using a DI-activated . +* Register an operation transformer using a delegate. +* Register an operation transformer using an instance of . +* Register an operation transformer using a DI-activated . +* Register a schema transformer using a delegate. +* Register a schema transformer using an instance of . +* Register a schema transformer using a DI-activated . + +[!code-csharp[](~/fundamentals/openapi/samples/9.x/WebMinOpenApi/Program.cs?name=snippet_transUse&highlight=8-19)] + +### Execution order for transformers + +Transformers are executed as follows: + +* Schema transformers are executed when a schema is registered to the document. Schema transformers are executed in the order in which they were added. +All schemas are added to the document before any operation processing occurs, so all schema transformers are executed before any operation transformers. +* Operation transformers are executed when an operation is added to the document. Operation transformers are executed in the order in which they were added. +All operations are added to the document before any document transformers are executed. +* Document transformers are executed when the document is generated. This is the final pass over the document, and all operations and schemas have been add by this point. +* When an app is configured to generate multiple OpenAPI documents, transformers are executed for each document independently. + +For example, in the following snippet: +* `SchemaTransformer2` is executed and has access to the modifications made by `SchemaTransformer1`. +* Both `OperationTransformer1` and `OperationTransformer2` have access to the modifications made by both schema transformers for the types involved in the operation they are called to process. +* `OperationTransformer2` is executed after `OperationTransformer1`, so it has access to the modifications made by `OperationTransformer1`. +* Both `DocumentTransformer1` and `DocumentTransformer2` are executed after all operations and schemas have been added to the document, so they have access to all modifications made by the operation and schema transformers. +* `DocumentTransformer2` is executed after `DocumentTransformer1`, so it has access to the modifications made by `DocumentTransformer1`. + +[!code-csharp[](~/fundamentals/openapi/samples/9.x/WebMinOpenApi/Program.cs?name=snippet_transInOut&highlight=6-14)] + +## Use document transformers + +Document transformers have access to a context object that includes: + +* The name of the document being modified. +* The associated with that document. +* The used in document generation. + +Document transformers can also mutate the OpenAPI document that is generated. The following example demonstrates a document transformer that adds some information about the API to the OpenAPI document. + +[!code-csharp[](~/fundamentals/openapi/samples/9.x/WebMinOpenApi/Program.cs?name=snippet_documenttransformer1)] + +Service-activated document transformers can utilize instances from DI to modify the app. The following sample demonstrates a document transformer that uses the service from the authentication layer. It checks if any JWT bearer-related schemes are registered in the app and adds them to the OpenAPI document's top level: + +[!code-csharp[](~/fundamentals/openapi/samples/9.x/WebMinOpenApi/Program.cs?name=snippet_documenttransformer2)] + +Document transformers are unique to the document instance they're associated with. In the following example, a transformer: + +* Registers authentication-related requirements to the `internal` document. +* Leaves the `public` document unmodified. + +[!code-csharp[](~/fundamentals/openapi/samples/9.x/WebMinOpenApi/Program.cs?name=snippet_multidoc_operationtransformer1)] + +## Use operation transformers + +Operations are unique combinations of HTTP paths and methods in an OpenAPI document. Operation transformers are helpful when a modification: + +* Should be made to each endpoint in an app, or +* Conditionally applied to certain routes. + +Operation transformers have access to a context object which contains: + +* The name of the document the operation belongs to. +* The associated with the operation. +* The used in document generation. + +For example, the following operation transformer adds `500` as a response status code supported by all operations in the document. + +[!code-csharp[](~/fundamentals/openapi/samples/9.x/WebMinOpenApi/Program.cs?name=snippet_operationtransformer1)] + +## Use schema transformers + +Schemas are the data models that are used in request and response bodies in an OpenAPI document. Schema transformers are useful when a modification: + +* Should be made to each schema in the document, or +* Conditionally applied to certain schemas. + +Schema transformers have access to a context object which contains: + +* The name of the document the schema belongs to. +* The JSON type information associated with the target schema. +* The used in document generation. + +For example, the following schema transformer sets the `format` of decimal types to `decimal` instead of `double`: + +[!code-csharp[](~/fundamentals/openapi/samples/9.x/WebMinOpenApi/Program.cs?name=snippet_schematransformer1)] + +## Customize schema reuse + +After all transformers have been applied, the framework makes a pass over the document to transfer certain schemas +to the `components.schemas` section, replacing them with `$ref` references to the transferred schema. +This reduces the size of the document and makes it easier to read. + +The details of this processing are complicated and might change in future versions of .NET, but in general: + +* Schemas for class/record/struct types are replaced with a `$ref` to a schema in `components.schemas` + if they appear more than once in the document. +* Schemas for primitive types and standard collections are left inline. +* Schemas for enum types are always replaced with a `$ref` to a schema in components.schemas. + +Typically the name of the schema in `components.schemas` is the name of the class/record/struct type, +but in some circumstances a different name must be used. + +ASP.NET Core lets you customize which schemas are replaced with a `$ref` to a schema in `components.schemas` +using the property of . +This property is a delegate that takes a object and returns the name of the schema +in `components.schemas` that should be used for that type. +The framework provides a default implementation of this delegate, +that uses the name of the type, but you can replace it with your own implementation. + +As a simple example of this customization, you might choose to always inline enum schemas. +This is done by setting to a delegate +that returns null for enum types, and otherwise returns the value from the default implementation. +The following code shows how to do this: + +```csharp +builder.Services.AddOpenApi(options => +{ + // Always inline enum schemas + options.CreateSchemaReferenceId = (type) => + type.Type.IsEnum ? null : OpenApiOptions.CreateDefaultSchemaReferenceId(type); +}); +``` + +## Additional resources + +* +* [OpenAPI specification](https://spec.openapis.org/oas/v3.0.3) + +:::moniker-end diff --git a/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/.spectral.yaml b/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/.spectral.yaml new file mode 100644 index 000000000000..d47c47d315d4 --- /dev/null +++ b/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/.spectral.yaml @@ -0,0 +1 @@ +extends: ["spectral:oas"] diff --git a/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/Program.cs b/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/Program.cs new file mode 100644 index 000000000000..b33984981bf1 --- /dev/null +++ b/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/Program.cs @@ -0,0 +1,544 @@ +//#define DEFAULT +#define DOCUMENTtransformerInOut +//#define DOCUMENTtransformer1 +//#define DOCUMENTtransformer2 +// #define DOCUMENTtransformerUse999 +//#define FIRST +//#define OPENAPIWITHSCALAR +//#define MAPOPENAPIWITHCACHING +//#define MAPOPENAPIWITHAUTH +//#define SWAGGERUI +//#define MULTIDOC_OPERATIONtransformer1 +//#define OPERATIONtransformer1 + +#if DEFAULT +// +using Microsoft.AspNetCore.OpenApi; + +var builder = WebApplication.CreateBuilder(args); + +builder.Services.AddOpenApi(); + +var app = builder.Build(); + +if (app.Environment.IsDevelopment()) +{ + app.MapOpenApi(); +} + +app.UseHttpsRedirection(); + +var summaries = new[] +{ + "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" +}; + +app.MapGet("/weatherforecast", () => +{ + var forecast = Enumerable.Range(1, 5).Select(index => + new WeatherForecast + ( + DateTime.Now.AddDays(index), + Random.Shared.Next(-20, 55), + summaries[Random.Shared.Next(summaries.Length)] + )) + .ToArray(); + return forecast; +}) +.WithName("GetWeatherForecast"); + +app.Run(); + +internal record WeatherForecast(DateTime Date, int TemperatureC, string? Summary) +{ + public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); +} +// +#endif + +#if DOCUMENTtransformer1 +// +using Microsoft.Extensions.DependencyInjection; +using Microsoft.AspNetCore.Builder; + +var builder = WebApplication.CreateBuilder(); + +builder.Services.AddOpenApi(options => +{ + options.AddDocumentTransformer((document, context, cancellationToken) => + { + document.Info = new() + { + Title = "Checkout API", + Version = "v1", + Description = "API for processing checkouts from cart." + }; + return Task.CompletedTask; + }); +}); + +var app = builder.Build(); + +if (app.Environment.IsDevelopment()) +{ + app.MapOpenApi(); +} + +app.MapGet("/", () => "Hello world!"); + +app.Run(); +// +#endif + +#if DOCUMENTtransformer2 +// +using Microsoft.AspNetCore.Authentication; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.OpenApi; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.OpenApi.Models; + +var builder = WebApplication.CreateBuilder(); + +builder.Services.AddAuthentication().AddJwtBearer(); + +builder.Services.AddOpenApi(options => +{ + options.AddDocumentTransformer(); +}); + +var app = builder.Build(); + +if (app.Environment.IsDevelopment()) +{ + app.MapOpenApi(); +} + +app.MapGet("/", () => "Hello world!"); + +app.Run(); + +internal sealed class BearerSecuritySchemeTransformer(IAuthenticationSchemeProvider authenticationSchemeProvider) : IOpenApiDocumentTransformer +{ + public async Task TransformAsync(OpenApiDocument document, OpenApiDocumentTransformerContext context, CancellationToken cancellationToken) + { + var authenticationSchemes = await authenticationSchemeProvider.GetAllSchemesAsync(); + if (authenticationSchemes.Any(authScheme => authScheme.Name == "Bearer")) + { + var requirements = new Dictionary + { + ["Bearer"] = new OpenApiSecurityScheme + { + Type = SecuritySchemeType.Http, + Scheme = "bearer", // "bearer" refers to the header name here + In = ParameterLocation.Header, + BearerFormat = "Json Web Token" + } + }; + document.Components ??= new OpenApiComponents(); + document.Components.SecuritySchemes = requirements; + } + } +} +// +#endif + +#if OPERATIONtransformer1 +// +using Microsoft.AspNetCore.Authentication; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.OpenApi; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.OpenApi.Models; + +var builder = WebApplication.CreateBuilder(); + +builder.Services.AddAuthentication().AddJwtBearer(); + +builder.Services.AddOpenApi(options => +{ + options.AddOperationTransformer((operation, context, cancellationToken) => + { + operation.Responses.Add("500", new OpenApiResponse { Description = "Internal server error" }); + return Task.CompletedTask; + }); +}); + +var app = builder.Build(); + +if (app.Environment.IsDevelopment()) +{ + app.MapOpenApi(); +} + +app.MapGet("/", () => "Hello world!"); + +app.Run(); +// +#endif + +#if MULTIDOC_OPERATIONtransformer1 +// +using Microsoft.AspNetCore.Authentication; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.OpenApi; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.OpenApi.Models; + +var builder = WebApplication.CreateBuilder(); + +builder.Services.AddAuthentication().AddJwtBearer(); + +builder.Services.AddOpenApi("internal", options => +{ + options.AddDocumentTransformer(); +}); +builder.Services.AddOpenApi("public"); + +var app = builder.Build(); + +if (app.Environment.IsDevelopment()) +{ + app.MapOpenApi(); +} + +app.MapGet("/world", () => "Hello world!") + .WithGroupName("internal"); +app.MapGet("/", () => "Hello universe!") + .WithGroupName("public"); + +app.Run(); + +internal sealed class BearerSecuritySchemeTransformer(IAuthenticationSchemeProvider authenticationSchemeProvider) : IOpenApiDocumentTransformer +{ + public async Task TransformAsync(OpenApiDocument document, OpenApiDocumentTransformerContext context, CancellationToken cancellationToken) + { + var authenticationSchemes = await authenticationSchemeProvider.GetAllSchemesAsync(); + if (authenticationSchemes.Any(authScheme => authScheme.Name == "Bearer")) + { + // Add the security scheme at the document level + var requirements = new Dictionary + { + ["Bearer"] = new OpenApiSecurityScheme + { + Type = SecuritySchemeType.Http, + Scheme = "bearer", // "bearer" refers to the header name here + In = ParameterLocation.Header, + BearerFormat = "Json Web Token" + } + }; + document.Components ??= new OpenApiComponents(); + document.Components.SecuritySchemes = requirements; + + // Apply it as a requirement for all operations + foreach (var operation in document.Paths.Values.SelectMany(path => path.Operations)) + { + operation.Value.Security.Add(new OpenApiSecurityRequirement + { + [new OpenApiSecurityScheme { Reference = new OpenApiReference { Id = "Bearer", Type = ReferenceType.SecurityScheme } }] = Array.Empty() + }); + } + } + } +} +// +#endif + +#if SCHEMAtransformer1 +// +using Microsoft.AspNetCore.OpenApi; + +var builder = WebApplication.CreateBuilder(); + +builder.Services.AddOpenApi(options => { + // Schema transformer to set the format of decimal to 'decimal' + options.AddSchemaTransformer((schema, context, cancellationToken) => + { + if (context.JsonTypeInfo.Type == typeof(decimal)) + { + schema.Format = "decimal"; + } + return Task.CompletedTask; + }); +}); + +var app = builder.Build(); + +if (app.Environment.IsDevelopment()) +{ + app.MapOpenApi(); +} + +app.MapGet("/", () => new Body { Amount = 1.1m }); + +app.Run(); + +public class Body { + public decimal Amount { get; set; } +} +// +#endif + +#if SWAGGERUI +// +using Microsoft.AspNetCore.Authentication; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.OpenApi; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.OpenApi.Models; + +var builder = WebApplication.CreateBuilder(); + +builder.Services.AddOpenApi(); + +var app = builder.Build(); + +if (app.Environment.IsDevelopment()) +{ + app.MapOpenApi(); + + app.UseSwaggerUI(options => + { + options.SwaggerEndpoint("/openapi/v1.json", "v1"); + }); + +} + +app.MapGet("/", () => "Hello world!"); + +app.Run(); +// +#endif + +#if MAPOPENAPIWITHAUTH +// +using Microsoft.AspNetCore.Authentication; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.OpenApi; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.OpenApi.Models; + +var builder = WebApplication.CreateBuilder(); + +builder.Services.AddAuthentication().AddJwtBearer(); +builder.Services.AddAuthorization(o => +{ + o.AddPolicy("ApiTesterPolicy", b => b.RequireRole("tester")); +}); +builder.Services.AddOpenApi(); + +var app = builder.Build(); + +app.MapOpenApi() + .RequireAuthorization("ApiTesterPolicy"); + +app.MapGet("/", () => "Hello world!"); + +app.Run(); +// +#endif + +#if MAPOPENAPIWITHCACHING +// +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.OpenApi; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.OpenApi.Models; + +var builder = WebApplication.CreateBuilder(); + +builder.Services.AddOutputCache(options => +{ + options.AddBasePolicy(policy => policy.Expire(TimeSpan.FromMinutes(10))); +}); +builder.Services.AddOpenApi(); + +var app = builder.Build(); + +app.UseOutputCache(); + +if (app.Environment.IsDevelopment()) +{ + app.MapOpenApi() + .CacheOutput(); +} + +app.MapGet("/", () => "Hello world!"); + +app.Run(); +// +#endif + +#if OPENAPIWITHSCALAR +// +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.OpenApi; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.OpenApi.Models; +using Scalar.AspNetCore; + +var builder = WebApplication.CreateBuilder(); + +builder.Services.AddOpenApi(); + +var app = builder.Build(); + +if (app.Environment.IsDevelopment()) +{ + app.MapOpenApi(); + app.MapScalarApiReference(); +} + +app.MapGet("/", () => "Hello world!"); + +app.Run(); +// +#endif + +#if FIRST +// +var builder = WebApplication.CreateBuilder(); + +builder.Services.AddOpenApi(); + +var app = builder.Build(); + +if (app.Environment.IsDevelopment()) +{ + app.MapOpenApi(); +} + +app.MapGet("/", () => "Hello world!"); + +app.Run(); +// +#endif + +#if DOCUMENTtransformerUse999 +// +using Microsoft.AspNetCore.OpenApi; +using Microsoft.OpenApi.Models; + +var builder = WebApplication.CreateBuilder(); + +builder.Services.AddOpenApi(options => +{ + options.AddDocumentTransformer((document, context, cancellationToken) + => Task.CompletedTask); + options.AddDocumentTransformer(new MyDocumentTransformer()); + options.AddDocumentTransformer(); + options.AddOperationTransformer((operation, context, cancellationToken) + => Task.CompletedTask); + options.AddOperationTransformer(new MyOperationTransformer()); + options.AddOperationTransformer(); + options.AddSchemaTransformer((schema, context, cancellationToken) + => Task.CompletedTask); + options.AddSchemaTransformer(new MySchemaTransformer()); + options.AddSchemaTransformer(); +}); + +var app = builder.Build(); + +if (app.Environment.IsDevelopment()) +{ + app.MapOpenApi(); +} + +app.MapGet("/", () => "Hello world!"); + +app.Run(); +// + +internal class MyDocumentTransformer : IOpenApiDocumentTransformer +{ + public Task TransformAsync(OpenApiDocument document, OpenApiDocumentTransformerContext context, CancellationToken cancellationToken) + { + // Simple transformation logic (e.g., adding a comment to the document) + document.Info.Description = "Transformed OpenAPI document"; + + return Task.CompletedTask; + } +} + +internal class MyOperationTransformer : IOpenApiOperationTransformer +{ + public Task TransformAsync(OpenApiOperation operation, OpenApiOperationTransformerContext context, CancellationToken cancellationToken) + { + // Simple transformation logic (e.g., adding a summary to the operation) + operation.Summary = "Transformed OpenAPI operation"; + + return Task.CompletedTask; + } +} +internal class MySchemaTransformer : IOpenApiSchemaTransformer +{ + public Task TransformAsync(OpenApiSchema schema, OpenApiSchemaTransformerContext context, CancellationToken cancellationToken) + { + // Simple transformation logic (e.g., adding a description to the schema) + schema.Description = "Transformed OpenAPI schema"; + + return Task.CompletedTask; + } +} +#endif + +#if DOCUMENTtransformerInOut +// +using Microsoft.AspNetCore.OpenApi; +using Microsoft.OpenApi.Models; + +var builder = WebApplication.CreateBuilder(); + +builder.Services.AddOpenApi(options => +{ + options.AddDocumentTransformer(); + options.AddSchemaTransformer(); + options.AddDocumentTransformer(); + options.AddOperationTransformer(); + options.AddSchemaTransformer(); + options.AddOperationTransformer(); +}); + +var app = builder.Build(); + +if (app.Environment.IsDevelopment()) +{ + app.MapOpenApi(); +} + +app.MapGet("/", () => "Hello world!"); + +app.Run(); +// + +internal class DocumentTransformer1 : IOpenApiDocumentTransformer +{ + public Task TransformAsync(OpenApiDocument document, OpenApiDocumentTransformerContext context, CancellationToken cancellationToken) => Task.CompletedTask; +} + +internal class DocumentTransformer2 : IOpenApiDocumentTransformer +{ + public Task TransformAsync(OpenApiDocument document, OpenApiDocumentTransformerContext context, CancellationToken cancellationToken) => Task.CompletedTask; +} + +internal class OperationTransformer1 : IOpenApiOperationTransformer +{ + public Task TransformAsync(OpenApiOperation operation, OpenApiOperationTransformerContext context, CancellationToken cancellationToken) => Task.CompletedTask; +} + +internal class OperationTransformer2 : IOpenApiOperationTransformer +{ + public Task TransformAsync(OpenApiOperation operation, OpenApiOperationTransformerContext context, CancellationToken cancellationToken) => Task.CompletedTask; +} + +internal class SchemaTransformer1 : IOpenApiSchemaTransformer +{ + public Task TransformAsync(OpenApiSchema schema, OpenApiSchemaTransformerContext context, CancellationToken cancellationToken) => Task.CompletedTask; +} + +internal class SchemaTransformer2 : IOpenApiSchemaTransformer +{ + public Task TransformAsync(OpenApiSchema schema, OpenApiSchemaTransformerContext context, CancellationToken cancellationToken) => Task.CompletedTask; +} + +#endif diff --git a/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/WebMinOpenApi.csproj b/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/WebMinOpenApi.csproj new file mode 100644 index 000000000000..d83ead4e0098 --- /dev/null +++ b/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/WebMinOpenApi.csproj @@ -0,0 +1,27 @@ + + + + net9.0 + enable + enable + ./ + --file-name my-open-api + + + + $(MSBuildProjectDirectory) + true + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + diff --git a/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/WebMinOpenApi.json b/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/WebMinOpenApi.json new file mode 100644 index 000000000000..714c9ee61bd8 --- /dev/null +++ b/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/WebMinOpenApi.json @@ -0,0 +1,37 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "GetDocument.Insider | v1", + "description": "Transformed OpenAPI document", + "version": "1.0.0" + }, + "paths": { + "/": { + "get": { + "tags": [ + "GetDocument.Insider" + ], + "summary": "Transformed OpenAPI operation", + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "string", + "description": "Transformed OpenAPI schema" + } + } + } + } + } + } + } + }, + "components": { }, + "tags": [ + { + "name": "GetDocument.Insider" + } + ] +} \ No newline at end of file diff --git a/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/appsettings.Development.json b/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/appsettings.Development.json new file mode 100644 index 000000000000..0c208ae9181e --- /dev/null +++ b/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/appsettings.json b/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/appsettings.json new file mode 100644 index 000000000000..10f68b8c8b4f --- /dev/null +++ b/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/global.json b/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/global.json new file mode 100644 index 000000000000..6091d76c863a --- /dev/null +++ b/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/global.json @@ -0,0 +1,5 @@ +{ + "sdk": { + "version": "9.0.100-rc.1.24414.13" + } +} diff --git a/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/my-open-api.json b/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/my-open-api.json new file mode 100644 index 000000000000..714c9ee61bd8 --- /dev/null +++ b/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/my-open-api.json @@ -0,0 +1,37 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "GetDocument.Insider | v1", + "description": "Transformed OpenAPI document", + "version": "1.0.0" + }, + "paths": { + "/": { + "get": { + "tags": [ + "GetDocument.Insider" + ], + "summary": "Transformed OpenAPI operation", + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "string", + "description": "Transformed OpenAPI schema" + } + } + } + } + } + } + } + }, + "components": { }, + "tags": [ + { + "name": "GetDocument.Insider" + } + ] +} \ No newline at end of file diff --git a/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/nuget.config b/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/nuget.config new file mode 100644 index 000000000000..6ce97590acdd --- /dev/null +++ b/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/nuget.config @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/projectFile.xml b/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/projectFile.xml new file mode 100644 index 000000000000..0ff4d21eb2d5 --- /dev/null +++ b/aspnetcore/fundamentals/openapi/samples/10.x/WebMinOpenApi/projectFile.xml @@ -0,0 +1,22 @@ + + + + net9.0 + enable + enable + + + + true + $(MSBuildProjectDirectory) + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + From efc2d52c3e2274c12ebd2ddb540f432e2fd556df Mon Sep 17 00:00:00 2001 From: Stuart Lang Date: Thu, 15 May 2025 01:11:01 +0100 Subject: [PATCH 4/4] Correct casing of ASP.NET Core in release notes (#35472) --- aspnetcore/release-notes/aspnetcore-10.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aspnetcore/release-notes/aspnetcore-10.0.md b/aspnetcore/release-notes/aspnetcore-10.0.md index 32908d4ab82e..79ac24423739 100644 --- a/aspnetcore/release-notes/aspnetcore-10.0.md +++ b/aspnetcore/release-notes/aspnetcore-10.0.md @@ -11,7 +11,7 @@ uid: aspnetcore-10 This article highlights the most significant changes in ASP.NET Core 10.0 with links to relevant documentation. -This article will be updated as new preview releases are made available. See the [Asp.Net Core announcement page](https://github.com/aspnet/announcements/issues?q=is%3Aopen+is%3Aissue+milestone%3A1.0.0-rc2) until this page is updated. +This article will be updated as new preview releases are made available. For breaking changes, see [Breaking changes in .NET](/dotnet/core/compatibility/breaking-changes).