Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
28797fc
update class library overview doc (#49636)
gewarren Nov 6, 2025
d7c8560
Update package index with latest published versions (#49639)
azure-sdk Nov 6, 2025
6c4d329
Document breaking change: Double quotes disallowed in file-level dire…
Copilot Nov 6, 2025
93ab90a
Update package index with latest published versions (#49652)
azure-sdk Nov 6, 2025
6e6b9ec
Fix reference to IsPrime method in unit testing docs (#49648)
snehansh Nov 6, 2025
a416869
Document missing vs. null value behavior in RespectNullableAnnotation…
Copilot Nov 6, 2025
8561836
Expand upgrade documentation with version pinning and controlled upgr…
Copilot Nov 6, 2025
af3107c
Document breaking change: Code coverage EnableDynamicNativeInstrument…
Copilot Nov 6, 2025
0a90a83
Update .NET AI ecosystem docs to feature Microsoft Agent Framework (#…
Copilot Nov 6, 2025
ca93180
Add documentation for CA2026: Prefer JsonElement.Parse over JsonDocum…
Copilot Nov 6, 2025
3768151
Document CompositeMLDsa update to draft-08 breaking change (#49609)
Copilot Nov 6, 2025
03de92d
Add documentation for CA1877: Collapse consecutive Path.Combine/Path.…
Copilot Nov 6, 2025
282b648
Fix note syntax in MSTEST0006 doc (#49653)
Youssef1313 Nov 6, 2025
ebc95c0
Remove note about GitHub Copilot app modernization agent (#49656)
adegeo Nov 6, 2025
0df9a83
Update package index with latest published versions (#49658)
azure-sdk Nov 7, 2025
78e27f3
Vb.net: Fix typo in enum member syntax description (#49666)
maciejpirog Nov 7, 2025
7bb6a1a
Add documentation for dotnet package download command (#49659)
Nigusu-Allehu Nov 7, 2025
c969230
Update package index with latest published versions (#49668)
azure-sdk Nov 7, 2025
04e66f2
Refactor more language agnostic content into includes (#49651)
alexwolfmsft Nov 7, 2025
871025f
Add errors for existing C# 14 themes (#49669)
BillWagner Nov 7, 2025
ffda384
Update System.Text.Json converter source links to main branch (#49670)
Copilot Nov 7, 2025
450e9e3
Update package index with latest published versions (#49673)
azure-sdk Nov 7, 2025
3ee81bf
Replace UWP with WinUI (#49672)
BillWagner Nov 7, 2025
0803ef3
Fix note syntax for mstest analyzer docs (#49679)
Youssef1313 Nov 7, 2025
9d4685b
Add LSG diagnostic articles (#49678)
gewarren Nov 7, 2025
190e78f
Add workaround for RID-specific tool publishing (#49295)
Copilot Nov 8, 2025
fdea82f
Update APIs that always throw on .NET (#49682)
gewarren Nov 10, 2025
54464ad
What's new in F# 10 (#49649)
abonie Nov 10, 2025
90e749f
Add documentation for IDE0360, IDE0370, and IDE0380 code style rules …
Copilot Nov 10, 2025
280f8d7
Add clarification that hosting APIs require framework-dependent deplo…
Copilot Nov 10, 2025
cddfad6
Update managed identity docs with latest best practices (#49696)
scottaddie Nov 10, 2025
0df9ec5
update CVE in 10B and typo in 10D (#49701)
TaraOverfield Nov 10, 2025
a670075
Improve messaging around .NET Upgrade Assistant (#49674)
adegeo Nov 10, 2025
60f4d4f
Update package index with latest published versions (#49695)
azure-sdk Nov 10, 2025
ea11cd2
Vb.net: Fix typo in join clause syntax in documentation (#49704)
maciejpirog Nov 11, 2025
587b466
Update package index with latest published versions (#49706)
azure-sdk Nov 11, 2025
b3f0558
Add and consolidate errors and warnings for async and await (#49702)
BillWagner Nov 11, 2025
4817bad
Update package index with latest published versions (#49711)
azure-sdk Nov 11, 2025
62b75f1
Merge branch 'main' of github.adegeo:dotnet/docs into net10-release
adegeo Nov 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/prompts/error-consolidation.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ Overall steps:

We're going to work through a series of files consolidating errors and warnings.

- For the duration of this chat, all references to "destination file" refer to `using-statement-declaration-errors.md.
- For the duration of this chat, all references to "the target theme" refer to errors and warnings related to `using` statements and `using` variable declarations. Note that the `using` keyword can also be used for a `using` directive. Don't include those error messages.
- For the duration of this chat, all references to "destination file" refer to `async-await-errors.md.
- For the duration of this chat, all references to "the target theme" refer to errors and warnings related to `async` function declarations and `await` expressions.

The destination file already contains a skeleton for the final output.

Expand Down
40 changes: 40 additions & 0 deletions .openpublishing.redirection.csharp.json
Original file line number Diff line number Diff line change
Expand Up @@ -471,6 +471,26 @@
"source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs1946.md",
"redirect_url": "/dotnet/csharp/language-reference/compiler-messages/expression-tree-restrictions"
},
{
"source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs1983.md",
"redirect_url": "/dotnet/csharp/language-reference/compiler-messages/async-await-errors"
},
{
"source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs1986.md",
"redirect_url": "/dotnet/csharp/language-reference/compiler-messages/async-await-errors"
},
{
"source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs1994.md",
"redirect_url": "/dotnet/csharp/language-reference/compiler-messages/async-await-errors"
},
{
"source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs1996.md",
"redirect_url": "/dotnet/csharp/language-reference/compiler-messages/async-await-errors"
},
{
"source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs1997.md",
"redirect_url": "/dotnet/csharp/language-reference/compiler-messages/async-await-errors"
},
{
"source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs1988.md",
"redirect_url": "/dotnet/csharp/language-reference/compiler-messages/ref-modifiers-errors"
Expand All @@ -479,6 +499,26 @@
"source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs4004.md",
"redirect_url": "/dotnet/csharp/language-reference/compiler-messages/unsafe-code-errors"
},
{
"source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs4008.md",
"redirect_url": "/dotnet/csharp/language-reference/compiler-messages/async-await-errors"
},
{
"source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs4014.md",
"redirect_url": "/dotnet/csharp/language-reference/compiler-messages/async-await-errors"
},
{
"source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs4032.md",
"redirect_url": "/dotnet/csharp/language-reference/compiler-messages/async-await-errors"
},
{
"source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs4033.md",
"redirect_url": "/dotnet/csharp/language-reference/compiler-messages/async-await-errors"
},
{
"source_path_from_root": "/docs/csharp/misc/CS4009.md",
"redirect_url": "/dotnet/csharp/language-reference/compiler-messages/async-await-errors"
},
{
"source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs3007.md",
"redirect_url": "/dotnet/csharp/language-reference/compiler-messages/array-declaration-errors"
Expand Down
16 changes: 0 additions & 16 deletions .openpublishing.redirection.fundamentals.json
Original file line number Diff line number Diff line change
Expand Up @@ -249,22 +249,6 @@
"source_path_from_root": "/docs/fundamentals/syslib-diagnostics/syslib1004.md",
"redirect_url": "/dotnet/fundamentals/syslib-diagnostics/source-generator-overview"
},
{
"source_path_from_root": "/docs/fundamentals/syslib-diagnostics/syslib1024.md",
"redirect_url": "/dotnet/fundamentals/syslib-diagnostics/source-generator-overview"
},
{
"source_path_from_root": "/docs/fundamentals/syslib-diagnostics/syslib1025.md",
"redirect_url": "/dotnet/fundamentals/syslib-diagnostics/source-generator-overview"
},
{
"source_path_from_root": "/docs/fundamentals/syslib-diagnostics/syslib1026.md",
"redirect_url": "/dotnet/fundamentals/syslib-diagnostics/source-generator-overview"
},
{
"source_path_from_root": "/docs/fundamentals/syslib-diagnostics/syslib1027.md",
"redirect_url": "/dotnet/fundamentals/syslib-diagnostics/source-generator-overview"
},
{
"source_path_from_root": "/docs/fundamentals/syslib-diagnostics/syslib1028.md",
"redirect_url": "/dotnet/fundamentals/syslib-diagnostics/source-generator-overview"
Expand Down
29 changes: 19 additions & 10 deletions docs/ai/dotnet-ai-ecosystem.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: .NET + AI ecosystem tools and SDKs
description: This article provides an overview of the ecosystem of SDKs and tools available to .NET developers integrating AI into their applications.
ms.date: 05/29/2025
ms.date: 11/04/2025
ms.topic: overview
---

Expand All @@ -18,19 +18,26 @@ The .NET ecosystem provides many powerful tools, libraries, and services to deve

`Microsoft.Extensions.AI` provides abstractions that can be implemented by various services, all adhering to the same core concepts. This library is not intended to provide APIs tailored to any specific provider's services. The goal of `Microsoft.Extensions.AI` is to act as a unifying layer within the .NET ecosystem, enabling developers to choose their preferred frameworks and libraries while ensuring seamless integration and collaboration across the ecosystem.

## Semantic Kernel for .NET
## Microsoft Agent Framework

If you want to use low-level services, such as <xref:Microsoft.Extensions.AI.IChatClient> and <xref:Microsoft.Extensions.AI.IEmbeddingGenerator`2>, you can reference the `Microsoft.Extensions.AI.Abstractions` package directly from your app. However, if you want to build agentic AI applications with higher-level orchestration capabilities, you should use [Microsoft Agent Framework](/agent-framework/overview/agent-framework-overview). Agent Framework builds on the `Microsoft.Extensions.AI.Abstractions` package and provides concrete implementations of <xref:Microsoft.Extensions.AI.IChatClient> for different services, including OpenAI, Azure OpenAI, Azure AI Foundry, and more.

This framework is the recommended approach for .NET apps that need to build agentic AI systems with advanced orchestration, multi-agent collaboration, and enterprise-grade security and observability.

If you just want to use the low-level services, such as <xref:Microsoft.Extensions.AI.IChatClient> and <xref:Microsoft.Extensions.AI.IEmbeddingGenerator`2>, you can reference the `Microsoft.Extensions.AI.Abstractions` package directly from your app. However, if you want to use higher-level, more opinionated approaches to AI, then you should use [Semantic Kernel](/semantic-kernel/overview/).
Agent Framework is a production-ready, open-source framework that brings together the best capabilities of Semantic Kernel and Microsoft Research's AutoGen. Agent Framework provides:

Semantic Kernel, which has a dependency on the `Microsoft.Extensions.AI.Abstractions` package, is an open-source library that enables AI integration and orchestration capabilities in your .NET apps. Its connectors provides concrete implementations of <xref:Microsoft.Extensions.AI.IChatClient> and <xref:Microsoft.Extensions.AI.IEmbeddingGenerator`2> for different services, including OpenAI, Amazon Bedrock, and Google Gemini.
- **Multi-agent orchestration**: Support for sequential, concurrent, group chat, handoff, and *magentic* (where a lead agent directs other agents) orchestration patterns.
- **Cloud and provider flexibility**: Cloud-agnostic (containers, on-premises, or multi-cloud) and provider-agnostic (for example, OpenAI or Azure AI Foundry) using plugin and connector models.
- **Enterprise-grade features**: Built-in observability (OpenTelemetry), Microsoft Entra security integration, and responsible AI features including prompt injection protection and task adherence monitoring.
- **Standards-based interoperability**: Integration with open standards like Agent-to-Agent (A2A) protocol and Model Context Protocol (MCP) for agent discovery and tool interaction.

The Semantic Kernel SDK is generally the recommended AI orchestration tool for .NET apps that use one or more AI services in combination with other APIs or web services, data stores, and custom code. Semantic Kernel benefits enterprise developers in the following ways:
For more information, see the [Microsoft Agent Framework documentation](/agent-framework/overview/agent-framework-overview).

## Semantic Kernel for .NET

- Streamlines integration of AI capabilities into existing applications to enable a cohesive solution for enterprise products.
- Minimizes the learning curve of working with different AI models or services by providing abstractions that reduce complexity.
- Improves reliability by reducing the unpredictable behavior of prompts and responses from AI models. You can fine-tune prompts and plan tasks to create a controlled and predictable user experience.
[Semantic Kernel](/semantic-kernel/overview/) is an open-source library that enables AI integration and orchestration capabilities in your .NET apps. Semantic Kernel has a dependency on the `Microsoft.Extensions.AI.Abstractions` package and provides connectors with concrete implementations of <xref:Microsoft.Extensions.AI.IChatClient> and <xref:Microsoft.Extensions.AI.IEmbeddingGenerator`2> for different services, including OpenAI, Amazon Bedrock, and Google Gemini.

For more information, see the [Semantic Kernel documentation](/semantic-kernel/overview/).
However, for new applications that require agentic capabilities, multi-agent orchestration, or enterprise-grade observability and security, the recommended framework is [Microsoft Agent Framework](/agent-framework/overview/agent-framework-overview).

## .NET SDKs for building AI apps

Expand All @@ -40,6 +47,7 @@ Many different SDKs are available to build .NET apps with AI capabilities depend

| NuGet package | Supported models | Maintainer or vendor | Documentation |
|---------------|------------------|----------------------|--------------|
| [Microsoft.Agents.AI.OpenAI](https://www.nuget.org/packages/Microsoft.Agents.AI.OpenAI/) | [OpenAI models](https://platform.openai.com/docs/models/overview)<br/>[Azure OpenAI supported models](/azure/ai-services/openai/concepts/models) | [Microsoft Agent Framework](https://github.com/microsoft/agent-framework) (Microsoft) | [Agent Framework documentation](/agent-framework/overview/agent-framework-overview) |
| [Microsoft.SemanticKernel](https://www.nuget.org/packages/Microsoft.SemanticKernel/) | [OpenAI models](https://platform.openai.com/docs/models/overview)<br/>[Azure OpenAI supported models](/azure/ai-services/openai/concepts/models) | [Semantic Kernel](https://github.com/microsoft/semantic-kernel) (Microsoft) | [Semantic Kernel documentation](/semantic-kernel/) |
| [Azure OpenAI SDK](https://www.nuget.org/packages/Azure.AI.OpenAI/) | [Azure OpenAI supported models](/azure/ai-services/openai/concepts/models) | [Azure SDK for .NET](https://github.com/Azure/azure-sdk-for-net) (Microsoft) | [Azure OpenAI services documentation](/azure/ai-services/openai/) |
| [OpenAI SDK](https://www.nuget.org/packages/OpenAI/) | [OpenAI supported models](https://platform.openai.com/docs/models) | [OpenAI SDK for .NET](https://github.com/openai/openai-dotnet) (OpenAI) | [OpenAI services documentation](https://platform.openai.com/docs/overview) |
Expand All @@ -60,7 +68,7 @@ Azure offers many other AI services to build specific application capabilities a

## Develop with local AI models

.NET apps can also connect to local AI models for many different development scenarios. [Semantic Kernel](https://github.com/microsoft/semantic-kernel) is the recommended tool to connect to local models using .NET. Semantic Kernel can connect to many different models hosted across a variety of platforms and abstracts away lower-level implementation details.
.NET apps can also connect to local AI models for many different development scenarios. [Microsoft Agent Framework](https://github.com/microsoft/agent-framework) is the recommended tool to connect to local models using .NET. This framework can connect to many different models hosted across a variety of platforms and abstracts away lower-level implementation details.

For example, you can use [Ollama](https://ollama.com/) to [connect to local AI models with .NET](quickstarts/chat-local-model.md), including several small language models (SLMs) developed by Microsoft:

Expand All @@ -78,6 +86,7 @@ For example, you can use [Ollama](https://ollama.com/) to [connect to local AI m

## Next steps

- [What is Microsoft Agent Framework?](/agent-framework/overview/agent-framework-overview)
- [What is Semantic Kernel?](/semantic-kernel/overview/)
- [Quickstart - Summarize text using Azure AI chat app with .NET](quickstarts/prompt-model.md)

Expand Down
Loading
Loading