-
Notifications
You must be signed in to change notification settings - Fork 6.1k
Add "Choose the right .NET AI tool" guidance article #53007
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Copilot
wants to merge
10
commits into
main
Choose a base branch
from
copilot/569825-update-ai-landscape-guidance
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
10 commits
Select commit
Hold shift + click to select a range
87fee60
Initial plan
Copilot aadb653
Add 'Choose the right .NET AI tool' guidance article and update AI ec…
Copilot efe04a8
Address code review feedback: improve writing style in choose-ai-tool.md
Copilot e8f7ddc
Address review feedback: xref links, AI Toolkit link, Aspire naming, …
Copilot c3ae6f2
Convert 'How to decide' bullets to table; add Copilot SDK and Foundry…
Copilot 7076baf
human edits
gewarren b8d2a3f
human edits
gewarren abe7e41
fix build warnings
gewarren 5a50b64
few more see also links
gewarren 0c33463
Apply suggestions from code review
gewarren File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,39 @@ | ||
| --- | ||
| title: "The Microsoft.Extensions.DataIngestion library" | ||
| description: "Learn about the Microsoft.Extensions.DataIngestion library, which provides foundational .NET building blocks for data ingestion." | ||
| ms.topic: concept-article | ||
| ms.date: 04/15/2026 | ||
| ai-usage: ai-assisted | ||
| --- | ||
|
|
||
| # The Microsoft.Extensions.DataIngestion library | ||
|
|
||
| The [📦 Microsoft.Extensions.DataIngestion package](https://www.nuget.org/packages/Microsoft.Extensions.DataIngestion) provides foundational .NET building blocks for data ingestion. It enables developers to read, process, and prepare documents for AI and machine learning workflows, especially Retrieval-Augmented Generation (RAG) scenarios. | ||
|
|
||
| With these building blocks, you can create robust, flexible, and intelligent data ingestion pipelines tailored for your application needs: | ||
|
|
||
| - **Unified document representation:** Represent any file type (for example, PDF, Image, or Microsoft Word) in a consistent format that works well with large language models. | ||
| - **Flexible data ingestion:** Read documents from both cloud services and local sources using multiple built-in readers, making it easy to bring in data from wherever it lives. | ||
| - **Built-in AI enhancements:** Automatically enrich content with summaries, sentiment analysis, keyword extraction, and classification, preparing your data for intelligent workflows. | ||
| - **Customizable chunking strategies:** Split documents into chunks using token-based, section-based, or semantic-aware approaches, so you can optimize for your retrieval and analysis needs. | ||
| - **Production-ready storage:** Store processed chunks in popular vector databases and document stores, with support for embedding generation, making your pipelines ready for real-world scenarios. | ||
| - **End-to-end pipeline composition:** Chain together readers, processors, chunkers, and writers with the <xref:Microsoft.Extensions.DataIngestion.IngestionPipeline`1> API, reducing boilerplate and making it easy to build, customize, and extend complete workflows. | ||
| - **Performance and scalability:** Designed for scalable data processing, these components can handle large volumes of data efficiently, making them suitable for enterprise-grade applications. | ||
|
|
||
| All of these components are open and extensible by design. You can add custom logic and new connectors, and extend the system to support emerging AI scenarios. By standardizing how documents are represented, processed, and stored, .NET developers can build reliable, scalable, and maintainable data pipelines without "reinventing the wheel" for every project. | ||
|
|
||
| ## Built on stable foundations | ||
|
|
||
|  | ||
|
|
||
| These data ingestion building blocks are built on top of proven and extensible components in the .NET ecosystem, ensuring reliability, interoperability, and seamless integration with existing AI workflows: | ||
|
|
||
| - **Microsoft.ML.Tokenizers:** Tokenizers provide the foundation for chunking documents based on tokens. This enables precise splitting of content, which is essential for preparing data for large language models and optimizing retrieval strategies. | ||
| - **Microsoft.Extensions.AI:** This set of libraries powers enrichment transformations using large language models. It enables features like summarization, sentiment analysis, keyword extraction, and embedding generation, making it easy to enhance your data with intelligent insights. | ||
| - **Microsoft.Extensions.VectorData:** This set of libraries offers a consistent interface for storing processed chunks in a wide variety of vector stores, including Qdrant, Azure SQL, CosmosDB, MongoDB, ElasticSearch, and many more. This ensures your data pipelines are ready for production and can scale across different storage backends. | ||
|
|
||
| In addition to familiar patterns and tools, these abstractions build on already extensible components. Plug-in capability and interoperability are paramount, so as the rest of the .NET AI ecosystem grows, the capabilities of the data ingestion components grow as well. This approach empowers developers to easily integrate new providers, enrichments, and storage options, keeping their pipelines future-ready and adaptable to evolving AI scenarios. | ||
|
|
||
| ## See also | ||
|
|
||
| - [Data ingestion](data-ingestion.md) | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,30 @@ | ||
| --- | ||
| title: "The Microsoft.Extensions.VectorData library" | ||
| description: "Learn how to use Microsoft.Extensions.VectorData to build semantic search features." | ||
| ms.topic: concept-article | ||
| ms.date: 04/15/2026 | ||
| ai-usage: ai-assisted | ||
| --- | ||
|
|
||
| # The Microsoft.Extensions.VectorData library | ||
|
|
||
| The [📦 Microsoft.Extensions.VectorData.Abstractions](https://www.nuget.org/packages/Microsoft.Extensions.VectorData.Abstractions) package provides a unified layer of abstractions for interacting with vector stores in .NET. These abstractions let you write simple, high-level code against a single API, and swap out the underlying vector store with minimal changes to your application. | ||
|
|
||
| The library provides the following key capabilities: | ||
|
|
||
| - **Seamless .NET type mapping**: Map your .NET type directly to the database, similar to an object/relational mapper. | ||
| - **Unified data model**: Define your data model once using .NET attributes and use it across any supported vector store. | ||
| - **CRUD operations**: Create, read, update, and delete records in a vector store. | ||
| - **Vector and hybrid search**: Query records by semantic similarity using vector search, or combine vector and text search for hybrid search. | ||
| - **Embedding generation management**: Configure your embedding generator once and let the library transparently handle generation. | ||
| - **Collection management**: Create, list, and delete collections (tables or indices) in a vector store. | ||
|
|
||
| Microsoft.Extensions.VectorData is also the building block for additional, higher-level layers that need to interact with vector databases, for example, the [Microsoft.Extensions.DataIngestion](../conceptual/data-ingestion.md) library. | ||
|
|
||
| ## Microsoft.Extensions.VectorData and Entity Framework Core | ||
|
|
||
| If you're already using [Entity Framework Core](/ef/core) to access your database, it's likely that your database provider already supports vector search, and LINQ queries can be used to express such searches. In such applications, Microsoft.Extensions.VectorData isn't necessarily needed. However, most dedicated vector databases aren't supported by EF Core, and Microsoft.Extensions.VectorData can provide a good experience for working with those. In addition, you might also find yourself using both EF and Microsoft.Extensions.VectorData in the same application, for example, when using an additional layer such as [Microsoft.Extensions.DataIngestion](../conceptual/medi-library.md). | ||
|
|
||
| ## See also | ||
|
|
||
| - [Vector databases for .NET AI apps](../vector-stores/overview.md) |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.