diff --git a/docs/ai/quickstarts/build-vector-search-app.md b/docs/ai/quickstarts/build-vector-search-app.md index 4fd63f17672cb..fc328d07beadb 100644 --- a/docs/ai/quickstarts/build-vector-search-app.md +++ b/docs/ai/quickstarts/build-vector-search-app.md @@ -10,44 +10,44 @@ zone_pivot_groups: openai-library # Build a .NET AI vector search app -In this quickstart, you create a .NET console app to perform semantic search on a vector store to find relevant results for the user's query. You learn how to generate embeddings for user prompts and use those embeddings to query the vector data store. Vector search functionality is also a key component for Retrieval Augmented Generation (RAG) scenarios. The app uses the and [Microsoft.Extensions.VectorData.Abstractions](https://www.nuget.org/packages/Microsoft.Extensions.VectorData.Abstractions) libraries so you can write code using AI abstractions rather than a specific SDK. AI abstractions help create loosely coupled code that allows you to change the underlying AI model with minimal app changes. +In this quickstart, you create a .NET console app to perform semantic search on a _vector store_ to find relevant results for the user's query. You learn how to generate embeddings for user prompts and use those embeddings to query the vector data store. -:::zone target="docs" pivot="openai" +Vector stores, or vector databases, are essential for tasks like semantic search, retrieval augmented generation (RAG), and other scenarios that require grounding generative AI responses. While relational databases and document databases are optimized for structured and semi-structured data, vector databases are built to efficiently store, index, and manage data represented as embedding vectors. As a result, the indexing and search algorithms used by vector databases are optimized to efficiently retrieve data that can be used downstream in your applications. -[!INCLUDE [openai-prereqs](includes/prerequisites-openai.md)] +## About the libraries -:::zone-end +The app uses the and libraries so you can write code using AI abstractions rather than a specific SDK. AI abstractions help create loosely coupled code that allows you to change the underlying AI model with minimal app changes. -:::zone target="docs" pivot="azure-openai" +[📦 Microsoft.Extensions.VectorData.Abstractions](https://www.nuget.org/packages/Microsoft.Extensions.VectorData.Abstractions/) is a .NET library developed in collaboration with Semantic Kernel and the broader .NET ecosystem to provide a unified layer of abstractions for interacting with vector stores. The abstractions in `Microsoft.Extensions.VectorData.Abstractions` provide library authors and developers with the following functionality: -[!INCLUDE [azure-openai-prereqs](includes/prerequisites-azure-openai.md)] +- Perform create-read-update-delete (CRUD) operations on vector stores. +- Use vector and text search on vector stores. -:::zone-end +> [!NOTE] +> The [Microsoft.Extensions.VectorData.Abstractions](https://www.nuget.org/packages/Microsoft.Extensions.VectorData.Abstractions/) library is currently in preview. -## Interact with your data using vector stores + -Vector stores or vector databases are essential for tasks like semantic search, Retrieval Augmented Generation (RAG), and other scenarios that require grounding generative AI responses. While relational databases and document databases are optimized for structured and semi-structured data, vector databases are built to efficiently store, index, and manage data represented as embedding vectors. As a result, the indexing and search algorithms used by vector databases are optimized to efficiently retrieve data that can be used downstream in your applications. +:::zone target="docs" pivot="openai" -### Explore Microsoft.Extensions.VectorData.Abstractions +[!INCLUDE [openai-prereqs](includes/prerequisites-openai.md)] -[Microsoft.Extensions.VectorData.Abstractions](https://www.nuget.org/packages/Microsoft.Extensions.VectorData.Abstractions/) is a .NET library developed in collaboration with Semantic Kernel and the broader .NET ecosystem to provide a unified layer of abstractions for interacting with vector stores. +:::zone-end -The abstractions in `Microsoft.Extensions.VectorData.Abstractions` provide library authors and developers with the following functionality: +:::zone target="docs" pivot="azure-openai" -- Perform Create-Read-Update-Delete (CRUD) operations on vector stores -- Use vector and text search on vector stores +[!INCLUDE [azure-openai-prereqs](includes/prerequisites-azure-openai.md)] -> [!NOTE] -> The [Microsoft.Extensions.VectorData.Abstractions](https://www.nuget.org/packages/Microsoft.Extensions.VectorData.Abstractions/) library is currently in preview. +:::zone-end ## Create the app Complete the following steps to create a .NET console app that can: -- Create and populate a vector store by generating embeddings for a data set -- Generate an embedding for the user prompt -- Query the vector store using the user prompt embedding -- Display the relevant results from the vector search +- Create and populate a vector store by generating embeddings for a data set. +- Generate an embedding for the user prompt. +- Query the vector store using the user prompt embedding. +- Display the relevant results from the vector search. 1. In an empty directory on your computer, use the `dotnet new` command to create a new console app: @@ -80,8 +80,8 @@ Complete the following steps to create a .NET console app that can: - [`Azure.Identity`](https://www.nuget.org/packages/Azure.Identity) provides [`Microsoft Entra ID`](/entra/fundamentals/whatis) token authentication support across the Azure SDK using classes such as `DefaultAzureCredential`. - [`Azure.AI.OpenAI`](https://www.nuget.org/packages/Azure.AI.OpenAI) is the official package for using OpenAI's .NET library with the Azure OpenAI Service. - - [`Microsoft.SemanticKernel.Connectors.InMemory`](https://www.nuget.org/packages/Microsoft.SemanticKernel.Connectors.InMemory) provides an in-memory vector store class to hold queryable vector data records. - [`Microsoft.Extensions.VectorData.Abstractions`](https://www.nuget.org/packages/Microsoft.Extensions.AI) enables Create-Read-Update-Delete (CRUD) and search operations on vector stores. + - [`Microsoft.SemanticKernel.Connectors.InMemory`](https://www.nuget.org/packages/Microsoft.SemanticKernel.Connectors.InMemory) provides an in-memory vector store class to hold queryable vector data records. - [Microsoft.Extensions.Configuration](https://www.nuget.org/packages/Microsoft.Extensions.Configuration) provides an implementation of key-value pair—based configuration. - [`Microsoft.Extensions.Configuration.UserSecrets`](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.UserSecrets) is a user secrets configuration provider implementation for `Microsoft.Extensions.Configuration`. @@ -101,8 +101,8 @@ Complete the following steps to create a .NET console app that can: The following list describes each package in the `VectorDataAI` app: - [`Microsoft.Extensions.AI.OpenAI`](https://www.nuget.org/packages/Microsoft.Extensions.AI.OpenAI) provides AI abstractions for OpenAI-compatible models or endpoints. This library also includes the official [`OpenAI`](https://www.nuget.org/packages/OpenAI) library for the OpenAI service API as a dependency. - - [`Microsoft.SemanticKernel.Connectors.InMemory`](https://www.nuget.org/packages/Microsoft.SemanticKernel.Connectors.InMemory) provides an in-memory vector store class to hold queryable vector data records. - [`Microsoft.Extensions.VectorData.Abstractions`](https://www.nuget.org/packages/Microsoft.Extensions.AI) enables Create-Read-Update-Delete (CRUD) and search operations on vector stores. + - [`Microsoft.SemanticKernel.Connectors.InMemory`](https://www.nuget.org/packages/Microsoft.SemanticKernel.Connectors.InMemory) provides an in-memory vector store class to hold queryable vector data records. - [Microsoft.Extensions.Configuration](https://www.nuget.org/packages/Microsoft.Extensions.Configuration) provides an implementation of key-value pair—based configuration. - [`Microsoft.Extensions.Configuration.UserSecrets`](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.UserSecrets) is a user secrets configuration provider implementation for `Microsoft.Extensions.Configuration`. @@ -134,21 +134,18 @@ Complete the following steps to create a .NET console app that can: dotnet user-secrets set ModelName ``` - > [!NOTE] - > For the `ModelName` value, you need to specify an OpenAI text embedding model such as `text-embedding-3-small` or `text-embedding-3-large` to generate embeddings for vector search in the sections that follow. - :::zone-end +> [!NOTE] +> For the model name, you need to specify a text embedding model such as `text-embedding-3-small` or `text-embedding-3-large` to generate embeddings for vector search in the sections that follow. For more information about embedding models, see [Embeddings](/azure/ai-services/openai/concepts/models#embeddings). + ## Add the app code 1. Add a new class named `CloudService` to your project with the following properties: :::code language="csharp" source="snippets/chat-with-data/azure-openai/CloudService.cs" ::: - In the preceding code: - - - The C# attributes provided by `Microsoft.Extensions.VectorData` influence how each property is handled when used in a vector store. - - The `Vector` property stores a generated embedding that represents the semantic meaning of the `Name` and `Description` for vector searches. + The attributes, such as , influence how each property is handled when used in a vector store. The `Vector` property stores a generated embedding that represents the semantic meaning of the `Description` value for vector searches. 1. In the `Program.cs` file, add the following code to create a data set that describes a collection of cloud services: @@ -158,10 +155,10 @@ Complete the following steps to create a .NET console app that can: :::zone target="docs" pivot="azure-openai" - :::code language="csharp" source="snippets/chat-with-data/azure-openai/program.cs" id="EmbeddingGen"::: + :::code language="csharp" source="snippets/chat-with-data/azure-openai/program.cs" id="EmbeddingGenerator"::: > [!NOTE] - > searches for authentication credentials from your local tooling. If you aren't using the `azd` template to provision the Azure OpenAI resource, you'll need to assign the `Azure AI Developer` role to the account you used to sign in to Visual Studio or the Azure CLI. For more information, see [Authenticate to Azure AI services with .NET](../azure-ai-services-authentication.md). + > searches for authentication credentials from your local tooling. You'll need to assign the `Azure AI Developer` role to the account you used to sign in to Visual Studio or the Azure CLI. For more information, see [Authenticate to Azure AI services with .NET](../azure-ai-services-authentication.md). :::zone-end @@ -193,7 +190,7 @@ Complete the following steps to create a .NET console app that can: ## Clean up resources -If you no longer need them, delete the Azure OpenAI resource and GPT-4 model deployment. +If you no longer need them, delete the Azure OpenAI resource and model deployment. 1. In the [Azure Portal](https://aka.ms/azureportal), navigate to the Azure OpenAI resource. 1. Select the Azure OpenAI resource, and then select **Delete**. diff --git a/docs/ai/quickstarts/includes/prerequisites-openai.md b/docs/ai/quickstarts/includes/prerequisites-openai.md index 3d3c3d99ced40..adc40d2aa0a1a 100644 --- a/docs/ai/quickstarts/includes/prerequisites-openai.md +++ b/docs/ai/quickstarts/includes/prerequisites-openai.md @@ -7,4 +7,4 @@ ms.topic: include ## Prerequisites - .NET 8.0 SDK or higher - [Install the .NET 8.0 SDK](https://dotnet.microsoft.com/download/dotnet/8.0). -- An [API key from OpenAI](https://platform.openai.com/docs/quickstart/account-setup) so you can run this sample. +- An [API key from OpenAI](https://platform.openai.com/docs/libraries#create-and-export-an-api-key) so you can run this sample. diff --git a/docs/ai/quickstarts/snippets/chat-with-data/azure-openai/CloudService.cs b/docs/ai/quickstarts/snippets/chat-with-data/azure-openai/CloudService.cs index b61e58aebedf4..44b3d72a86c83 100644 --- a/docs/ai/quickstarts/snippets/chat-with-data/azure-openai/CloudService.cs +++ b/docs/ai/quickstarts/snippets/chat-with-data/azure-openai/CloudService.cs @@ -13,6 +13,8 @@ internal class CloudService [VectorStoreData] public string Description { get; set; } - [VectorStoreVector(Dimensions: 384, DistanceFunction = DistanceFunction.CosineSimilarity)] + [VectorStoreVector( + Dimensions: 384, + DistanceFunction = DistanceFunction.CosineSimilarity)] public ReadOnlyMemory Vector { get; set; } } diff --git a/docs/ai/quickstarts/snippets/chat-with-data/azure-openai/Program.cs b/docs/ai/quickstarts/snippets/chat-with-data/azure-openai/Program.cs index 6420db93f5c77..426e977d37e64 100644 --- a/docs/ai/quickstarts/snippets/chat-with-data/azure-openai/Program.cs +++ b/docs/ai/quickstarts/snippets/chat-with-data/azure-openai/Program.cs @@ -4,6 +4,7 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.VectorData; using Microsoft.SemanticKernel.Connectors.InMemory; +using System.Linq; using VectorDataAI; // @@ -42,21 +43,21 @@ ]; // -// -// Load the configuration values +// +// Load the configuration values. IConfigurationRoot config = new ConfigurationBuilder().AddUserSecrets().Build(); string endpoint = config["AZURE_OPENAI_ENDPOINT"]; string model = config["AZURE_OPENAI_GPT_NAME"]; -// Create the embedding generator +// Create the embedding generator. IEmbeddingGenerator> generator = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()) .GetEmbeddingClient(deploymentName: model) .AsIEmbeddingGenerator(); -// +// // -// Create and populate the vector store +// Create and populate the vector store. var vectorStore = new InMemoryVectorStore(); VectorStoreCollection cloudServicesStore = vectorStore.GetCollection("cloudServices"); @@ -70,14 +71,15 @@ // // -// Convert a search query to a vector and search the vector store +// Convert a search query to a vector +// and search the vector store. string query = "Which Azure service should I use to store my Word documents?"; ReadOnlyMemory queryEmbedding = await generator.GenerateVectorAsync(query); -List> results = - await cloudServicesStore.SearchAsync(queryEmbedding, top: 1).ToListAsync(); +IAsyncEnumerable> results = + cloudServicesStore.SearchAsync(queryEmbedding, top: 1); -foreach (VectorSearchResult result in results) +await foreach (VectorSearchResult result in results) { Console.WriteLine($"Name: {result.Record.Name}"); Console.WriteLine($"Description: {result.Record.Description}"); diff --git a/docs/ai/quickstarts/snippets/chat-with-data/azure-openai/VectorDataAI.csproj b/docs/ai/quickstarts/snippets/chat-with-data/azure-openai/VectorDataAI.csproj index 2e0744e977157..11bbd37f6d15b 100644 --- a/docs/ai/quickstarts/snippets/chat-with-data/azure-openai/VectorDataAI.csproj +++ b/docs/ai/quickstarts/snippets/chat-with-data/azure-openai/VectorDataAI.csproj @@ -5,18 +5,17 @@ net9.0 enable enable - 5981f38c-e59c-46cc-80bb-463f8c3f1691 + 8565c67c-c4b8-4824-a3e7-7f6e352adb33 - + + + - - - - + diff --git a/docs/ai/quickstarts/snippets/chat-with-data/openai/CloudService.cs b/docs/ai/quickstarts/snippets/chat-with-data/openai/CloudService.cs index d4d058e8b8f8f..44b3d72a86c83 100644 --- a/docs/ai/quickstarts/snippets/chat-with-data/openai/CloudService.cs +++ b/docs/ai/quickstarts/snippets/chat-with-data/openai/CloudService.cs @@ -1,19 +1,20 @@ using Microsoft.Extensions.VectorData; -namespace VectorDataAI +namespace VectorDataAI; + +internal class CloudService { - internal class CloudService - { - [VectorStoreRecordKey] - public int Key { get; set; } + [VectorStoreKey] + public int Key { get; set; } - [VectorStoreRecordData] - public string Name { get; set; } + [VectorStoreData] + public string Name { get; set; } - [VectorStoreRecordData] - public string Description { get; set; } + [VectorStoreData] + public string Description { get; set; } - [VectorStoreRecordVector(Dimensions: 384, DistanceFunction = DistanceFunction.CosineSimilarity)] - public ReadOnlyMemory Vector { get; set; } - } + [VectorStoreVector( + Dimensions: 384, + DistanceFunction = DistanceFunction.CosineSimilarity)] + public ReadOnlyMemory Vector { get; set; } } diff --git a/docs/ai/quickstarts/snippets/chat-with-data/openai/Program.cs b/docs/ai/quickstarts/snippets/chat-with-data/openai/Program.cs index 21d7f98c26ee4..c43fe9f6781e0 100644 --- a/docs/ai/quickstarts/snippets/chat-with-data/openai/Program.cs +++ b/docs/ai/quickstarts/snippets/chat-with-data/openai/Program.cs @@ -1,79 +1,85 @@ -using System.ClientModel; -using Microsoft.Extensions.AI; +using Microsoft.Extensions.AI; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.VectorData; using Microsoft.SemanticKernel.Connectors.InMemory; using OpenAI; +using System.ClientModel; using VectorDataAI; -var cloudServices = new List() -{ +List cloudServices = +[ new() { - Key=0, - Name="Azure App Service", - Description="Host .NET, Java, Node.js, and Python web applications and APIs in a fully managed Azure service. You only need to deploy your code to Azure. Azure takes care of all the infrastructure management like high availability, load balancing, and autoscaling." - }, + Key = 0, + Name = "Azure App Service", + Description = "Host .NET, Java, Node.js, and Python web applications and APIs in a fully managed Azure service. You only need to deploy your code to Azure. Azure takes care of all the infrastructure management like high availability, load balancing, and autoscaling." + }, new() { - Key=1, - Name="Azure Service Bus", - Description="A fully managed enterprise message broker supporting both point to point and publish-subscribe integrations. It's ideal for building decoupled applications, queue-based load leveling, or facilitating communication between microservices." - }, + Key = 1, + Name = "Azure Service Bus", + Description = "A fully managed enterprise message broker supporting both point to point and publish-subscribe integrations. It's ideal for building decoupled applications, queue-based load leveling, or facilitating communication between microservices." + }, new() { - Key=2, - Name="Azure Blob Storage", - Description="Azure Blob Storage allows your applications to store and retrieve files in the cloud. Azure Storage is highly scalable to store massive amounts of data and data is stored redundantly to ensure high availability." - }, + Key = 2, + Name = "Azure Blob Storage", + Description = "Azure Blob Storage allows your applications to store and retrieve files in the cloud. Azure Storage is highly scalable to store massive amounts of data and data is stored redundantly to ensure high availability." + }, new() { - Key=3, - Name="Microsoft Entra ID", - Description="Manage user identities and control access to your apps, data, and resources.." - }, + Key = 3, + Name = "Microsoft Entra ID", + Description = "Manage user identities and control access to your apps, data, and resources." + }, new() { - Key=4, - Name="Azure Key Vault", - Description="Store and access application secrets like connection strings and API keys in an encrypted vault with restricted access to make sure your secrets and your application aren't compromised." - }, + Key = 4, + Name = "Azure Key Vault", + Description = "Store and access application secrets like connection strings and API keys in an encrypted vault with restricted access to make sure your secrets and your application aren't compromised." + }, new() { - Key=5, - Name="Azure AI Search", - Description="Information retrieval at scale for traditional and conversational search applications, with security and options for AI enrichment and vectorization." - } -}; + Key = 5, + Name = "Azure AI Search", + Description = "Information retrieval at scale for traditional and conversational search applications, with security and options for AI enrichment and vectorization." + } +]; +// // Load the configuration values. IConfigurationRoot config = new ConfigurationBuilder().AddUserSecrets().Build(); string model = config["ModelName"]; string key = config["OpenAIKey"]; -// // Create the embedding generator. IEmbeddingGenerator> generator = new OpenAIClient(new ApiKeyCredential(key)) .GetEmbeddingClient(model: model) .AsIEmbeddingGenerator(); +// +// // Create and populate the vector store. var vectorStore = new InMemoryVectorStore(); -IVectorStoreRecordCollection cloudServicesStore = vectorStore.GetCollection("cloudServices"); -await cloudServicesStore.CreateCollectionIfNotExistsAsync(); -// +VectorStoreCollection cloudServicesStore = + vectorStore.GetCollection("cloudServices"); +await cloudServicesStore.EnsureCollectionExistsAsync(); foreach (CloudService service in cloudServices) { service.Vector = await generator.GenerateVectorAsync(service.Description); await cloudServicesStore.UpsertAsync(service); } +// -// Convert a search query to a vector and search the vector store. +// +// Convert a search query to a vector +// and search the vector store. string query = "Which Azure service should I use to store my Word documents?"; ReadOnlyMemory queryEmbedding = await generator.GenerateVectorAsync(query); -List> results = - await cloudServicesStore.SearchEmbeddingAsync(queryEmbedding, top: 1).ToListAsync(); +IAsyncEnumerable> results = + cloudServicesStore.SearchAsync(queryEmbedding, top: 1); -foreach (VectorSearchResult result in results) +await foreach (VectorSearchResult result in results) { Console.WriteLine($"Name: {result.Record.Name}"); Console.WriteLine($"Description: {result.Record.Description}"); Console.WriteLine($"Vector match score: {result.Score}"); } +// diff --git a/docs/ai/quickstarts/snippets/chat-with-data/openai/VectorDataAI.csproj b/docs/ai/quickstarts/snippets/chat-with-data/openai/VectorDataAI.csproj index 62bcadf35ed6a..064e929f9cf6b 100644 --- a/docs/ai/quickstarts/snippets/chat-with-data/openai/VectorDataAI.csproj +++ b/docs/ai/quickstarts/snippets/chat-with-data/openai/VectorDataAI.csproj @@ -2,18 +2,18 @@ Exe - net8.0 + net9.0 enable enable + b8a8065b-fd10-4649-ab56-9f0879904338 - - - - - - + + + + + diff --git a/docs/ai/quickstarts/snippets/mcp-client/MinimalMCPClient.csproj b/docs/ai/quickstarts/snippets/mcp-client/MinimalMCPClient.csproj index dd76aca91301a..99541e7f84704 100644 --- a/docs/ai/quickstarts/snippets/mcp-client/MinimalMCPClient.csproj +++ b/docs/ai/quickstarts/snippets/mcp-client/MinimalMCPClient.csproj @@ -1,4 +1,4 @@ - + Exe @@ -9,10 +9,10 @@ - + - + diff --git a/docs/ai/quickstarts/snippets/mcp-client/Program.cs b/docs/ai/quickstarts/snippets/mcp-client/Program.cs index 707cff1760e17..e8d236fcb65d4 100644 --- a/docs/ai/quickstarts/snippets/mcp-client/Program.cs +++ b/docs/ai/quickstarts/snippets/mcp-client/Program.cs @@ -2,7 +2,6 @@ using Azure.Identity; using Microsoft.Extensions.AI; using ModelContextProtocol.Client; -using ModelContextProtocol.Protocol.Transport; // Create an IChatClient using Azure OpenAI. IChatClient client = @@ -15,7 +14,7 @@ // Create the MCP client // Configure it to start and connect to your MCP server. -var mcpClient = await McpClientFactory.CreateAsync( +IMcpClient mcpClient = await McpClientFactory.CreateAsync( new StdioClientTransport(new() { Command = "dotnet run", @@ -25,8 +24,8 @@ // List all available tools from the MCP server. Console.WriteLine("Available tools:"); -var tools = await mcpClient.ListToolsAsync(); -foreach (var tool in tools) +IList tools = await mcpClient.ListToolsAsync(); +foreach (McpClientTool tool in tools) { Console.WriteLine($"{tool}"); } @@ -40,7 +39,7 @@ messages.Add(new(ChatRole.User, Console.ReadLine())); List updates = []; - await foreach (var update in client + await foreach (ChatResponseUpdate update in client .GetStreamingResponseAsync(messages, new() { Tools = [.. tools] })) { Console.Write(update); @@ -49,4 +48,4 @@ Console.WriteLine(); messages.AddMessages(updates); -} \ No newline at end of file +} diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 15c3b1f963445..0c1f40c715143 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -1,6 +1,6 @@ | Name | Package | Docs | Source | | ---- | ------- | ---- | ------ | -| AI Agents Persistent | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.Agents.Persistent/1.0.0)
NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Azure.AI.Agents.Persistent/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/AI.Agents.Persistent-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Agents.Persistent_1.0.0/sdk/ai/Azure.AI.Agents.Persistent/)
GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Agents.Persistent_1.1.0-beta.1/sdk/ai/Azure.AI.Agents.Persistent/) | +| AI Agents Persistent | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.Agents.Persistent/1.0.0)
NuGet [1.1.0-beta.2](https://www.nuget.org/packages/Azure.AI.Agents.Persistent/1.1.0-beta.2) | [docs](/dotnet/api/overview/azure/AI.Agents.Persistent-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Agents.Persistent_1.0.0/sdk/ai/Azure.AI.Agents.Persistent/)
GitHub [1.1.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Agents.Persistent_1.1.0-beta.2/sdk/ai/Azure.AI.Agents.Persistent/) | | AI Foundry | NuGet [1.0.0-beta.9](https://www.nuget.org/packages/Azure.AI.Projects/1.0.0-beta.9) | [docs](/dotnet/api/overview/azure/AI.Projects-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.9](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Projects_1.0.0-beta.9/sdk/ai/Azure.AI.Projects/) | | AI Model Inference | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.AI.Inference/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/AI.Inference-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Inference_1.0.0-beta.5/sdk/ai/Azure.AI.Inference/) | | Anomaly Detector | NuGet [3.0.0-preview.7](https://www.nuget.org/packages/Azure.AI.AnomalyDetector/3.0.0-preview.7) | [docs](/dotnet/api/overview/azure/AI.AnomalyDetector-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [3.0.0-preview.7](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.AnomalyDetector_3.0.0-preview.7/sdk/anomalydetector/Azure.AI.AnomalyDetector/) | @@ -13,7 +13,7 @@ | Azure.Core.Expressions.DataFactory | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Core.Expressions.DataFactory/1.0.0) | [docs](/dotnet/api/overview/azure/Core.Expressions.DataFactory-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Core.Expressions.DataFactory_1.0.0/sdk/core/Azure.Core.Expressions.DataFactory/) | | Calling Server | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Communication.CallingServer/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Communication.CallingServer-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.CallingServer_1.0.0-beta.3/sdk/communication/Azure.Communication.CallingServer/) | | Code Transparency | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Security.CodeTransparency/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Security.CodeTransparency-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.CodeTransparency_1.0.0-beta.3/sdk/confidentialledger/Azure.Security.CodeTransparency/) | -| Communication Call Automation | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Communication.CallAutomation/1.3.0)
NuGet [1.5.0-beta.1](https://www.nuget.org/packages/Azure.Communication.CallAutomation/1.5.0-beta.1) | [docs](/dotnet/api/overview/azure/Communication.CallAutomation-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.CallAutomation_1.3.0/sdk/communication/Azure.Communication.CallAutomation/)
GitHub [1.5.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.CallAutomation_1.5.0-beta.1/sdk/communication/Azure.Communication.CallAutomation/) | +| Communication Call Automation | NuGet [1.4.0](https://www.nuget.org/packages/Azure.Communication.CallAutomation/1.4.0)
NuGet [1.5.0-beta.1](https://www.nuget.org/packages/Azure.Communication.CallAutomation/1.5.0-beta.1) | [docs](/dotnet/api/overview/azure/Communication.CallAutomation-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.CallAutomation_1.4.0/sdk/communication/Azure.Communication.CallAutomation/)
GitHub [1.5.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.CallAutomation_1.5.0-beta.1/sdk/communication/Azure.Communication.CallAutomation/) | | Communication Chat | NuGet [1.3.1](https://www.nuget.org/packages/Azure.Communication.Chat/1.3.1)
NuGet [1.4.0-beta.1](https://www.nuget.org/packages/Azure.Communication.Chat/1.4.0-beta.1) | [docs](/dotnet/api/overview/azure/Communication.Chat-readme) | GitHub [1.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Chat_1.3.1/sdk/communication/Azure.Communication.Chat/)
GitHub [1.4.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Chat_1.4.0-beta.1/sdk/communication/Azure.Communication.Chat/) | | Communication Common | NuGet [1.4.0](https://www.nuget.org/packages/Azure.Communication.Common/1.4.0)
NuGet [2.0.0-beta.1](https://www.nuget.org/packages/Azure.Communication.Common/2.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Communication.Common-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Common_1.4.0/sdk/communication/Azure.Communication.Common/)
GitHub [2.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Common_2.0.0-beta.1/sdk/communication/Azure.Communication.Common/) | | Communication Email | NuGet [1.0.1](https://www.nuget.org/packages/Azure.Communication.Email/1.0.1)
NuGet [1.1.0-beta.2](https://www.nuget.org/packages/Azure.Communication.Email/1.1.0-beta.2) | [docs](/dotnet/api/overview/azure/Communication.Email-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Email_1.0.1/sdk/communication/Azure.Communication.Email/)
GitHub [1.1.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Email_1.1.0-beta.2/sdk/communication/Azure.Communication.Email/) | @@ -42,7 +42,7 @@ | Digital Twins | NuGet [1.6.0](https://www.nuget.org/packages/Azure.DigitalTwins.Core/1.6.0) | [docs](/dotnet/api/overview/azure/DigitalTwins.Core-readme) | GitHub [1.6.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.DigitalTwins.Core_1.6.0/sdk/digitaltwins/Azure.DigitalTwins.Core/) | | Document Intelligence | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.DocumentIntelligence/1.0.0) | [docs](/dotnet/api/overview/azure/AI.DocumentIntelligence-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.DocumentIntelligence_1.0.0/sdk/documentintelligence/Azure.AI.DocumentIntelligence/) | | Document Translation | NuGet [2.0.0](https://www.nuget.org/packages/Azure.AI.Translation.Document/2.0.0) | [docs](/dotnet/api/overview/azure/AI.Translation.Document-readme) | GitHub [2.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Translation.Document_2.0.0/sdk/translation/Azure.AI.Translation.Document/) | -| Event Grid | NuGet [4.31.0](https://www.nuget.org/packages/Azure.Messaging.EventGrid/4.31.0) | [docs](/dotnet/api/overview/azure/Messaging.EventGrid-readme) | GitHub [4.31.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid_4.31.0/sdk/eventgrid/Azure.Messaging.EventGrid/) | +| Event Grid | NuGet [4.31.0](https://www.nuget.org/packages/Azure.Messaging.EventGrid/4.31.0)
NuGet [5.0.0-beta.1](https://www.nuget.org/packages/Azure.Messaging.EventGrid/5.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Messaging.EventGrid-readme) | GitHub [4.31.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid_4.31.0/sdk/eventgrid/Azure.Messaging.EventGrid/)
GitHub [5.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid_5.0.0-beta.1/sdk/eventgrid/Azure.Messaging.EventGrid/) | | Event Grid Namespaces | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Messaging.EventGrid.Namespaces/1.1.0) | [docs](/dotnet/api/overview/azure/Messaging.EventGrid.Namespaces-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid.Namespaces_1.1.0/sdk/eventgrid/Azure.Messaging.EventGrid.Namespaces/) | | Event Hubs | NuGet [5.12.1](https://www.nuget.org/packages/Azure.Messaging.EventHubs/5.12.1) | [docs](/dotnet/api/overview/azure/Messaging.EventHubs-readme) | GitHub [5.12.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventHubs_5.12.1/sdk/eventhub/Azure.Messaging.EventHubs/) | | Event Hubs - Event Processor | NuGet [5.12.1](https://www.nuget.org/packages/Azure.Messaging.EventHubs.Processor/5.12.1) | [docs](/dotnet/api/overview/azure/Messaging.EventHubs.Processor-readme) | GitHub [5.12.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventHubs.Processor_5.12.1/sdk/eventhub/Azure.Messaging.EventHubs.Processor/) | @@ -249,7 +249,7 @@ | Resource Management - Elastic | NuGet [1.0.0](https://www.nuget.org/packages/Azure.ResourceManager.Elastic/1.0.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Elastic-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Elastic_1.0.0/sdk/elastic/Azure.ResourceManager.Elastic/) | | Resource Management - ElasticSan | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.ElasticSan/1.1.0)
NuGet [1.2.0-beta.2](https://www.nuget.org/packages/Azure.ResourceManager.ElasticSan/1.2.0-beta.2) | [docs](/dotnet/api/overview/azure/ResourceManager.ElasticSan-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ElasticSan_1.1.0/sdk/elasticsan/Azure.ResourceManager.ElasticSan/)
GitHub [1.2.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ElasticSan_1.2.0-beta.2/sdk/elasticsan/Azure.ResourceManager.ElasticSan/) | | Resource Management - Energy Services | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.ResourceManager.EnergyServices/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/ResourceManager.EnergyServices-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.EnergyServices_1.0.0-beta.3/sdk/openenergyplatform/Azure.ResourceManager.EnergyServices/) | -| Resource Management - Event Grid | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.EventGrid/1.1.0) | [docs](/dotnet/api/overview/azure/ResourceManager.EventGrid-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.EventGrid_1.1.0/sdk/eventgrid/Azure.ResourceManager.EventGrid/) | +| Resource Management - Event Grid | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.EventGrid/1.1.0)
NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.EventGrid/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.EventGrid-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.EventGrid_1.1.0/sdk/eventgrid/Azure.ResourceManager.EventGrid/)
GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.EventGrid_1.2.0-beta.1/sdk/eventgrid/Azure.ResourceManager.EventGrid/) | | Resource Management - Event Hubs | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.EventHubs/1.1.0)
NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.EventHubs/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.EventHubs-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.EventHubs_1.1.0/sdk/eventhub/Azure.ResourceManager.EventHubs/)
GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.EventHubs_1.2.0-beta.1/sdk/eventhub/Azure.ResourceManager.EventHubs/) | | Resource Management - Extended Location | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.ExtendedLocations/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ExtendedLocations-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ExtendedLocations_1.1.1/sdk/extendedlocation/Azure.ResourceManager.ExtendedLocations/) | | Resource Management - Fabric | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.ResourceManager.Fabric/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/ResourceManager.Fabric-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Fabric_1.0.0-beta.2/sdk/fabric/Azure.ResourceManager.Fabric/) | diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md index 9f041183e74ca..5a5c0620905cb 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -1,6 +1,6 @@ | Name | Package | Docs | Source | | ---- | ------- | ---- | ------ | -| AI Agents Persistent | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.Agents.Persistent/1.0.0)
NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Azure.AI.Agents.Persistent/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/AI.Agents.Persistent-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Agents.Persistent_1.0.0/sdk/ai/Azure.AI.Agents.Persistent/)
GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Agents.Persistent_1.1.0-beta.1/sdk/ai/Azure.AI.Agents.Persistent/) | +| AI Agents Persistent | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.Agents.Persistent/1.0.0)
NuGet [1.1.0-beta.2](https://www.nuget.org/packages/Azure.AI.Agents.Persistent/1.1.0-beta.2) | [docs](/dotnet/api/overview/azure/AI.Agents.Persistent-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Agents.Persistent_1.0.0/sdk/ai/Azure.AI.Agents.Persistent/)
GitHub [1.1.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Agents.Persistent_1.1.0-beta.2/sdk/ai/Azure.AI.Agents.Persistent/) | | AI Foundry | NuGet [1.0.0-beta.9](https://www.nuget.org/packages/Azure.AI.Projects/1.0.0-beta.9) | [docs](/dotnet/api/overview/azure/AI.Projects-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.9](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Projects_1.0.0-beta.9/sdk/ai/Azure.AI.Projects/) | | AI Model Inference | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.AI.Inference/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/AI.Inference-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Inference_1.0.0-beta.5/sdk/ai/Azure.AI.Inference/) | | Anomaly Detector | NuGet [3.0.0-preview.7](https://www.nuget.org/packages/Azure.AI.AnomalyDetector/3.0.0-preview.7) | [docs](/dotnet/api/overview/azure/AI.AnomalyDetector-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [3.0.0-preview.7](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.AnomalyDetector_3.0.0-preview.7/sdk/anomalydetector/Azure.AI.AnomalyDetector/) | @@ -13,7 +13,7 @@ | Azure.Core.Expressions.DataFactory | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Core.Expressions.DataFactory/1.0.0) | [docs](/dotnet/api/overview/azure/Core.Expressions.DataFactory-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Core.Expressions.DataFactory_1.0.0/sdk/core/Azure.Core.Expressions.DataFactory/) | | Calling Server | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Communication.CallingServer/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Communication.CallingServer-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.CallingServer_1.0.0-beta.3/sdk/communication/Azure.Communication.CallingServer/) | | Code Transparency | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Security.CodeTransparency/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Security.CodeTransparency-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.CodeTransparency_1.0.0-beta.3/sdk/confidentialledger/Azure.Security.CodeTransparency/) | -| Communication Call Automation | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Communication.CallAutomation/1.3.0)
NuGet [1.5.0-beta.1](https://www.nuget.org/packages/Azure.Communication.CallAutomation/1.5.0-beta.1) | [docs](/dotnet/api/overview/azure/Communication.CallAutomation-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.CallAutomation_1.3.0/sdk/communication/Azure.Communication.CallAutomation/)
GitHub [1.5.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.CallAutomation_1.5.0-beta.1/sdk/communication/Azure.Communication.CallAutomation/) | +| Communication Call Automation | NuGet [1.4.0](https://www.nuget.org/packages/Azure.Communication.CallAutomation/1.4.0)
NuGet [1.5.0-beta.1](https://www.nuget.org/packages/Azure.Communication.CallAutomation/1.5.0-beta.1) | [docs](/dotnet/api/overview/azure/Communication.CallAutomation-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.CallAutomation_1.4.0/sdk/communication/Azure.Communication.CallAutomation/)
GitHub [1.5.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.CallAutomation_1.5.0-beta.1/sdk/communication/Azure.Communication.CallAutomation/) | | Communication Chat | NuGet [1.3.1](https://www.nuget.org/packages/Azure.Communication.Chat/1.3.1)
NuGet [1.4.0-beta.1](https://www.nuget.org/packages/Azure.Communication.Chat/1.4.0-beta.1) | [docs](/dotnet/api/overview/azure/Communication.Chat-readme) | GitHub [1.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Chat_1.3.1/sdk/communication/Azure.Communication.Chat/)
GitHub [1.4.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Chat_1.4.0-beta.1/sdk/communication/Azure.Communication.Chat/) | | Communication Common | NuGet [1.4.0](https://www.nuget.org/packages/Azure.Communication.Common/1.4.0)
NuGet [2.0.0-beta.1](https://www.nuget.org/packages/Azure.Communication.Common/2.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Communication.Common-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Common_1.4.0/sdk/communication/Azure.Communication.Common/)
GitHub [2.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Common_2.0.0-beta.1/sdk/communication/Azure.Communication.Common/) | | Communication Email | NuGet [1.0.1](https://www.nuget.org/packages/Azure.Communication.Email/1.0.1)
NuGet [1.1.0-beta.2](https://www.nuget.org/packages/Azure.Communication.Email/1.1.0-beta.2) | [docs](/dotnet/api/overview/azure/Communication.Email-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Email_1.0.1/sdk/communication/Azure.Communication.Email/)
GitHub [1.1.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Email_1.1.0-beta.2/sdk/communication/Azure.Communication.Email/) | @@ -43,7 +43,7 @@ | Digital Twins | NuGet [1.6.0](https://www.nuget.org/packages/Azure.DigitalTwins.Core/1.6.0) | [docs](/dotnet/api/overview/azure/DigitalTwins.Core-readme) | GitHub [1.6.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.DigitalTwins.Core_1.6.0/sdk/digitaltwins/Azure.DigitalTwins.Core/) | | Document Intelligence | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.DocumentIntelligence/1.0.0) | [docs](/dotnet/api/overview/azure/AI.DocumentIntelligence-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.DocumentIntelligence_1.0.0/sdk/documentintelligence/Azure.AI.DocumentIntelligence/) | | Document Translation | NuGet [2.0.0](https://www.nuget.org/packages/Azure.AI.Translation.Document/2.0.0) | [docs](/dotnet/api/overview/azure/AI.Translation.Document-readme) | GitHub [2.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Translation.Document_2.0.0/sdk/translation/Azure.AI.Translation.Document/) | -| Event Grid | NuGet [4.31.0](https://www.nuget.org/packages/Azure.Messaging.EventGrid/4.31.0) | [docs](/dotnet/api/overview/azure/Messaging.EventGrid-readme) | GitHub [4.31.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid_4.31.0/sdk/eventgrid/Azure.Messaging.EventGrid/) | +| Event Grid | NuGet [4.31.0](https://www.nuget.org/packages/Azure.Messaging.EventGrid/4.31.0)
NuGet [5.0.0-beta.1](https://www.nuget.org/packages/Azure.Messaging.EventGrid/5.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Messaging.EventGrid-readme) | GitHub [4.31.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid_4.31.0/sdk/eventgrid/Azure.Messaging.EventGrid/)
GitHub [5.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid_5.0.0-beta.1/sdk/eventgrid/Azure.Messaging.EventGrid/) | | Event Grid Namespaces | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Messaging.EventGrid.Namespaces/1.1.0) | [docs](/dotnet/api/overview/azure/Messaging.EventGrid.Namespaces-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid.Namespaces_1.1.0/sdk/eventgrid/Azure.Messaging.EventGrid.Namespaces/) | | Event Hubs | NuGet [5.12.1](https://www.nuget.org/packages/Azure.Messaging.EventHubs/5.12.1) | [docs](/dotnet/api/overview/azure/Messaging.EventHubs-readme) | GitHub [5.12.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventHubs_5.12.1/sdk/eventhub/Azure.Messaging.EventHubs/) | | Event Hubs - Event Processor | NuGet [5.12.1](https://www.nuget.org/packages/Azure.Messaging.EventHubs.Processor/5.12.1) | [docs](/dotnet/api/overview/azure/Messaging.EventHubs.Processor-readme) | GitHub [5.12.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventHubs.Processor_5.12.1/sdk/eventhub/Azure.Messaging.EventHubs.Processor/) | @@ -255,7 +255,7 @@ | Resource Management - Elastic | NuGet [1.0.0](https://www.nuget.org/packages/Azure.ResourceManager.Elastic/1.0.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Elastic-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Elastic_1.0.0/sdk/elastic/Azure.ResourceManager.Elastic/) | | Resource Management - ElasticSan | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.ElasticSan/1.1.0)
NuGet [1.2.0-beta.2](https://www.nuget.org/packages/Azure.ResourceManager.ElasticSan/1.2.0-beta.2) | [docs](/dotnet/api/overview/azure/ResourceManager.ElasticSan-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ElasticSan_1.1.0/sdk/elasticsan/Azure.ResourceManager.ElasticSan/)
GitHub [1.2.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ElasticSan_1.2.0-beta.2/sdk/elasticsan/Azure.ResourceManager.ElasticSan/) | | Resource Management - Energy Services | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.ResourceManager.EnergyServices/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/ResourceManager.EnergyServices-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.EnergyServices_1.0.0-beta.3/sdk/openenergyplatform/Azure.ResourceManager.EnergyServices/) | -| Resource Management - Event Grid | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.EventGrid/1.1.0) | [docs](/dotnet/api/overview/azure/ResourceManager.EventGrid-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.EventGrid_1.1.0/sdk/eventgrid/Azure.ResourceManager.EventGrid/) | +| Resource Management - Event Grid | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.EventGrid/1.1.0)
NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.EventGrid/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.EventGrid-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.EventGrid_1.1.0/sdk/eventgrid/Azure.ResourceManager.EventGrid/)
GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.EventGrid_1.2.0-beta.1/sdk/eventgrid/Azure.ResourceManager.EventGrid/) | | Resource Management - Event Hubs | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.EventHubs/1.1.0)
NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.EventHubs/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.EventHubs-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.EventHubs_1.1.0/sdk/eventhub/Azure.ResourceManager.EventHubs/)
GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.EventHubs_1.2.0-beta.1/sdk/eventhub/Azure.ResourceManager.EventHubs/) | | Resource Management - Extended Location | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.ExtendedLocations/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ExtendedLocations-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ExtendedLocations_1.1.1/sdk/extendedlocation/Azure.ResourceManager.ExtendedLocations/) | | Resource Management - Fabric | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.ResourceManager.Fabric/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/ResourceManager.Fabric-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Fabric_1.0.0-beta.2/sdk/fabric/Azure.ResourceManager.Fabric/) | diff --git a/docs/core/porting/github-copilot-app-modernization-faq.yml b/docs/core/porting/github-copilot-app-modernization-faq.yml index 789c58e9bda7d..e88e28d7bb2f2 100644 --- a/docs/core/porting/github-copilot-app-modernization-faq.yml +++ b/docs/core/porting/github-copilot-app-modernization-faq.yml @@ -12,6 +12,13 @@ title: GitHub Copilot app modernization - upgrade for .NET FAQ summary: | GitHub Copilot app modernization - upgrade for .NET is an interactive GitHub Copilot extension that adds powerful upgrade capabilities to Visual Studio. This article answers frequently asked questions. For more information about the tool, see [What is GitHub Copilot app modernization - upgrade for .NET?](github-copilot-app-modernization-overview.md). + The tool requires one of the following GitHub Copilot subscriptions: + + - Copilot Pro + - Copilot Pro+ + - Copilot Business + - Copilot Enterprise + sections: - name: Scenarios questions: diff --git a/docs/core/porting/github-copilot-app-modernization-install.md b/docs/core/porting/github-copilot-app-modernization-install.md index d659343c260ae..217b0bedbfe54 100644 --- a/docs/core/porting/github-copilot-app-modernization-install.md +++ b/docs/core/porting/github-copilot-app-modernization-install.md @@ -21,6 +21,17 @@ This article guides you through installing GitHub Copilot app modernization - up - [Visual Studio 2022 version 17.14 or newer](https://visualstudio.microsoft.com/downloads/) - [.NET desktop development workload](/visualstudio/install/modify-visual-studio?view=vs-2022&preserve-view=true#change-workloads-or-individual-components) +While not required to _install_ the extension, to use the extension you must [sign in to Visual Studio using a GitHub account](/visualstudio/ide/work-with-github-accounts) with [Copilot access](https://docs.github.com/copilot/about-github-copilot/what-is-github-copilot#getting-access-to-copilot). + +Supported GitHub Copilot subscription plans are: + +- Copilot Pro +- Copilot Pro+ +- Copilot Business +- Copilot Enterprise + +(If you change subscriptions, you must restart Visual Studio.) + ## Visual Studio extension The following steps install the Visual Studio extension. diff --git a/docs/core/porting/github-copilot-app-modernization-overview.md b/docs/core/porting/github-copilot-app-modernization-overview.md index fb435de6a4e90..52c8417ed5580 100644 --- a/docs/core/porting/github-copilot-app-modernization-overview.md +++ b/docs/core/porting/github-copilot-app-modernization-overview.md @@ -23,7 +23,16 @@ GitHub Copilot app modernization is distributed as a Visual Studio extension, an - [Visual Studio 2022 version 17.14 or newer](https://visualstudio.microsoft.com/downloads/). - [.NET desktop development workload](/visualstudio/install/modify-visual-studio?view=vs-2022&preserve-view=true#change-workloads-or-individual-components). - [Sign in to Visual Studio using a GitHub account](/visualstudio/ide/work-with-github-accounts) with [Copilot access](https://docs.github.com/copilot/about-github-copilot/what-is-github-copilot#getting-access-to-copilot). - - You can use [GitHub Copilot for free](/visualstudio/ide/copilot-free-plan). + + Supported subscription plans: + + - Copilot Pro + - Copilot Pro+ + - Copilot Business + - Copilot Enterprise + +(If you change subscriptions, you must restart Visual Studio.) + - Code must be in a local Git repository. - Code must be written in C#. - Optional but recommended: Use **GitHub Copilot agent mode** for the upgrade process. For more information, see [Use Copilot agent mode in Visual Studio](/visualstudio/ide/copilot-agent-mode?view=vs-2022&preserve-view=true). diff --git a/docs/core/porting/index.md b/docs/core/porting/index.md index cd3e21a48e705..3ab2af03991a0 100644 --- a/docs/core/porting/index.md +++ b/docs/core/porting/index.md @@ -1,8 +1,8 @@ --- -title: Port from .NET Framework to .NET 7 -description: Understand the porting process and discover tools you might find helpful when porting a .NET Framework project to .NET 7. +title: Port from .NET Framework to .NET +description: Understand the porting process and discover tools you might find helpful when porting a .NET Framework project to .NET. author: adegeo -ms.date: 07/23/2024 +ms.date: 06/03/2025 ms.custom: devdivchpfy22, updateeachrelease no-loc: ["package.config", PackageReference] --- diff --git a/docs/core/porting/modernize.md b/docs/core/porting/modernize.md index 3620ca5f06f03..1cc827db32346 100644 --- a/docs/core/porting/modernize.md +++ b/docs/core/porting/modernize.md @@ -11,6 +11,9 @@ no-loc: ["package.config", PackageReference] In this article, you'll learn about different ways you can modernize your app after it's been upgraded from .NET Framework to .NET. Use the [.NET Upgrade Assistant](upgrade-assistant-overview.md) tool to upgrade your app to .NET. +> [!TIP] +> You can use GitHub Copilot to modernize your application after migrating from .NET Framework. For more information, see [What is GitHub Copilot app modernization - upgrade for .NET?](github-copilot-app-modernization-overview.md). + ## Missing APIs When upgrading a .NET Framework app, you'll most likely have some incompatibilities. This is because .NET Framework is a Windows-only technology and .NET is a cross-platform technology. Some libraries aren't. For example, .NET doesn't provide out-of-the-box APIs to access the Windows Registry like .NET Framework did. Support for the Windows Registry is provided by the `Microsoft.Win32.Registry` NuGet package. Many .NET Framework-specific libraries have been ported to .NET or .NET Standard, and are hosted on NuGet. If you find a missing reference in your project, search NuGet. diff --git a/docs/csharp/language-reference/compiler-options/code-generation.md b/docs/csharp/language-reference/compiler-options/code-generation.md index 21dd9c0891294..ec4ca0ca8b352 100644 --- a/docs/csharp/language-reference/compiler-options/code-generation.md +++ b/docs/csharp/language-reference/compiler-options/code-generation.md @@ -36,10 +36,10 @@ The following values are valid: | Value | Meaning | |------------|---------------------------------------------------------------------------------------------------------| -| `full` | Emit debugging information to _.pdb_ file using default format for the current platform:
**Windows**: A Windows pdb file.
**Linux/macOS**: A [Portable PDB](https://github.com/dotnet/core/blob/main/Documentation/diagnostics/portable_pdb.md) file. | +| `full` | Emit debugging information to _.pdb_ file using default format for the current platform:
**Windows**: A Windows pdb file.
**Linux/macOS**: A [Portable PDB](https://github.com/dotnet/designs/blob/main/accepted/2020/diagnostics/portable-pdb.md) file. | | `pdbonly` | Same as `full`. See the note below for more information. | -| `portable` | Emit debugging information to .pdb file using cross-platform [Portable PDB](https://github.com/dotnet/core/blob/main/Documentation/diagnostics/portable_pdb.md) format. | -| `embedded` | Emit debugging information into the _.dll/.exe_ itself (_.pdb_ file is not produced) using [Portable PDB](https://github.com/dotnet/core/blob/main/Documentation/diagnostics/portable_pdb.md) format. | +| `portable` | Emit debugging information to .pdb file using cross-platform [Portable PDB](https://github.com/dotnet/designs/blob/main/accepted/2020/diagnostics/portable-pdb.md) format. | +| `embedded` | Emit debugging information into the _.dll/.exe_ itself (_.pdb_ file is not produced) using [Portable PDB](https://github.com/dotnet/designs/blob/main/accepted/2020/diagnostics/portable-pdb.md) format. | > [!IMPORTANT] > The following information applies only to compilers older than C# 6.0. diff --git a/docs/csharp/misc/cs0460.md b/docs/csharp/misc/cs0460.md index c80da435b4d9d..93633a953186f 100644 --- a/docs/csharp/misc/cs0460.md +++ b/docs/csharp/misc/cs0460.md @@ -1,7 +1,8 @@ --- description: "Compiler Error CS0460" title: "Compiler Error CS0460" -ms.date: 07/20/2015 +ms.date: 06/03/2025 +ai-usage: ai-generated f1_keywords: - "CS0460" helpviewer_keywords: @@ -12,11 +13,16 @@ ms.assetid: 98d39ded-d3f9-4520-b912-892e574c056b Constraints for override and explicit interface implementation methods are inherited from the base method, so they cannot be specified directly - When a generic method that is part of a derived class overrides a method in the base class, you may not specify constraints on the overridden method. The override method in the derived class inherits its constraints from the method in the base class. + When a generic method that is part of a derived class overrides a method in the base class, you can't specify constraints on the overridden method. The override method in the derived class inherits its constraints from the method in the base class. + +However, there are exceptions to this rule: + +- Starting with C# 9, you can apply the `default` constraint to `override` and explicit interface implementation methods to resolve ambiguities with nullable reference types. +- Starting with C# 8, you can explicitly specify `where T : class` and `where T : struct` constraints on `override` and explicit interface implementation methods to allow annotations for type parameters constrained to reference types. ## Example - The following sample generates CS0460. + The following sample generates CS0460 when attempting to redeclare inherited constraints. ```csharp // CS0460.cs @@ -30,12 +36,22 @@ interface I { void F1() where T : BaseClass; void F2() where T : struct; - void F3() where T : BaseClass; + void F3(); + void F4() where T : struct; } class ExpImpl : I { - void I.F1() where T : BaseClass {} // CS0460 - void I.F2() where T : class {} // CS0460 -} + // CS0460 - cannot redeclare inherited constraint. + void I.F1() where T : BaseClass { } + + // Allowed - explicit constraint for struct. + void I.F2() where T : struct { } + + // Valid since C# 8 - explicit class constraint for nullable annotations. + void I.F4() where T : struct { } + + // Valid since C# 9 - default constraint to resolve ambiguities. + void I.F3() where T : default { } +} ``` diff --git a/docs/fundamentals/code-analysis/code-quality-rule-options.md b/docs/fundamentals/code-analysis/code-quality-rule-options.md index d83ab5318d614..12c8f7b3d4194 100644 --- a/docs/fundamentals/code-analysis/code-quality-rule-options.md +++ b/docs/fundamentals/code-analysis/code-quality-rule-options.md @@ -135,7 +135,7 @@ This section lists the available configuration options for code analyzers. For m | Description | Allowable values | Default value | Configurable rules | |-------------|------------------|---------------|--------------------| -| Specifies that code in a project that generates this type of assembly should be analyzed | One or more fields of the enumeration

Separate multiple values with a comma (,) | All output kinds | [CA2007](quality-rules/ca2007.md) | +| Specifies that code in a project that generates this type of assembly should be analyzed | One or more fields of the enumeration

Separate multiple values with a comma (,) | All output kinds | [CA1515](quality-rules/ca1515.md) [CA2007](quality-rules/ca2007.md) | ### required_modifiers diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1515.md b/docs/fundamentals/code-analysis/quality-rules/ca1515.md index 43e9f4392fd08..f1d6cecba0085 100644 --- a/docs/fundamentals/code-analysis/quality-rules/ca1515.md +++ b/docs/fundamentals/code-analysis/quality-rules/ca1515.md @@ -1,7 +1,7 @@ --- title: "CA1515: Consider making public types internal" description: "Learn about code analyzer rule CA1515 - Consider making public types internal" -ms.date: 12/07/2023 +ms.date: 06/04/2025 ms.topic: reference f1_keywords: - CA1515 @@ -43,7 +43,7 @@ Mark the type as `internal`. The following code snippet shows a violation of CA1515: ```csharp -// Inside a project with Exe +// Inside a project with Exe. public class Program { public static void Main(string[] args) @@ -53,6 +53,7 @@ public class Program ``` ```vb +' Inside a project with Exe. Public Class Program Public Shared Sub Main(args As string()) End Sub @@ -62,7 +63,7 @@ End Class The following code snippet fixes the violation: ```csharp -// Inside a project with Exe +// Inside a project with Exe. internal class Program { public static void Main(string[] args) @@ -72,12 +73,15 @@ internal class Program ``` ```vb +' Inside a project with Exe. Friend Class Program Public Shared Sub Main(args As string()) End Sub End Class ``` +(For more information about the output type of a project, see [the "Output type" section of .NET Project Designer](/visualstudio/ide/reference/project-designer-dotnet-csharp#application-general-settings).) + ## When to suppress warnings It's safe to suppress a violation of this rule if you're not concerned about the maintainability of your code. @@ -100,3 +104,13 @@ dotnet_diagnostic.CA1515.severity = none ``` For more information, see [How to suppress code analysis warnings](../suppress-warnings.md). + +## Configure code to analyze + +You can configure which _output assembly kinds_ to apply this rule to. For example, to only apply this rule to code that produces a console application or a dynamically linked library (that is, not a UI app), add the following key-value pair to an *.editorconfig* file in your project: + +```ini +dotnet_code_quality.CA1515.output_kind = ConsoleApplication, DynamicallyLinkedLibrary +``` + +For more information, see [output_kind](../code-quality-rule-options.md#output_kind). diff --git a/docs/fundamentals/runtime-libraries/system-int64.md b/docs/fundamentals/runtime-libraries/system-int64.md index 3c5a470f18621..d4df435117d62 100644 --- a/docs/fundamentals/runtime-libraries/system-int64.md +++ b/docs/fundamentals/runtime-libraries/system-int64.md @@ -71,6 +71,6 @@ You can also format an value as a binary, octal, decimal, or :::code language="fsharp" source="./snippets/System/Convert/ToInt64/fsharp/formatting1.fs" id="Snippet2"::: :::code language="vb" source="./snippets/System/Int64/Overview/vb/formatting1.vb" id="Snippet2"::: -## Work with non-decimal 32-bit integer values +## Work with non-decimal 64-bit integer values -In addition to working with individual long integers as decimal values, you may want to perform bitwise operations with long integer values, or work with the binary or hexadecimal representations of long integer values. values are represented in 63 bits, with the sixty-fourth bit used as a sign bit. Positive values are represented by using sign-and-magnitude representation. Negative values are in two's complement representation. This is important to keep in mind when you perform bitwise operations on values or when you work with individual bits. In order to perform a numeric, Boolean, or comparison operation on any two non-decimal values, both values must use the same representation. +In addition to working with individual long integers as decimal values, you might want to perform bitwise operations or work with the binary or hexadecimal representations of long integer values. values are represented in 63 bits, with the sixty-fourth bit used as a sign bit. Positive values are represented by using sign-and-magnitude representation. Negative values are in two's complement representation. This is important to keep in mind when you perform bitwise operations on values or when you work with individual bits. To perform a numeric, Boolean, or comparison operation on any two non-decimal values, both values must use the same representation.