dotnet/extensions

repository·main·Indexed 25 days ago

https://github.com/dotnet/extensions

A collection of libraries and tools providing enriched capabilities for production-ready .NET applications. It focuses on AI, resilience, telemetry, compliance, and diagnostics, and includes tools like ApiChief for API surface analysis, DiagConfig for managing diagnostic configuration YAML files, and DiagPublisher for diagnostic ID management. The repository also provides legacy support polyfills and injections for older frameworks to enable modern C# features and APIs.

Tokens
50K
Snippets
172
Records
274
Agent score
85%

What's inside dotnet/extensions

  1. Overview of DiagConfig tool

    main
    DiagConfig is a tool used to manipulate diagnostic configuration YAML files. These files contain metadata for Roslyn analyzers (title, description, category, help URI, tags) and severity information. The tool's primary purpose is to generate .editorconfig files that control diagnostic messages for different types of source code (e.g., production, test, or benchmark code).
  2. Overview of Microsoft.Extensions.AI.Evaluation packages

    main

    The Microsoft.Extensions.AI.Evaluation ecosystem consists of several specialized packages:

    • Microsoft.Extensions.AI.Evaluation: Core abstractions and types.
    • Microsoft.Extensions.AI.Evaluation.Quality: Evaluators for response quality (e.g., Relevance, Truth, Completeness, Fluency, Coherence, Retrieval, Equivalence, and Groundedness).
    • Microsoft.Extensions.AI.Evaluation.Safety: Evaluators built on Azure AI Foundry for content safety (e.g., Protected Material, Hate and Unfairness, Self Harm, Violence, Sexual, Code Vulnerability, and Indirect Attack).
    • Microsoft.Extensions.AI.Evaluation.NLP: Evaluators for NLP and machine translation tasks (e.g., BLEU, GLEU, and F1 scores).
    • Microsoft.Extensions.AI.Evaluation.Reporting: Support for caching LLM responses, storing evaluation results, and generating reports.
    • Microsoft.Extensions.AI.Evaluation.Reporting.Azure: Azure Storage implementation for caching and storing evaluation results.
    • Microsoft.Extensions.AI.Evaluation.Console: A CLI tool for report generation and data management.
  3. Overview of Enriched Capabilities libraries

    main
    The dotnet/extensions repository provides a suite of libraries designed for building production-ready, high-scale, and high-availability applications. These libraries extend standard .NET functionality to improve efficiency, robustness, and manageability across several functional areas.
  4. Overview of Microsoft.Extensions.ServiceDiscovery.Abstractions

    main
    The Microsoft.Extensions.ServiceDiscovery.Abstractions library defines the core interfaces and types used for service discovery within the .NET ecosystem. It serves as the foundation for the Microsoft.Extensions.ServiceDiscovery implementation and allows other libraries to implement custom service discovery extensions, such as service endpoint providers.
  5. Overview of Microsoft.Extensions.VectorData.Abstractions

    main

    The Microsoft.Extensions.VectorData.Abstractions package provides a standardized set of abstract classes and utilities for interacting with vector databases. It allows developers to write code that is decoupled from specific database implementations.

    Key capabilities provided by these abstractions include:

    • Mapping .NET types to database collections (e.g., tables) with arbitrary schema support.
    • Managing collections (creating, listing, and deleting).
    • CRUD operations for records (creating, retrieving, updating, and deleting).
    • Similarity search using vector embeddings.
    • Filtering records using LINQ filters.
    • Hybrid search (combining vector similarity and keyword search).
    • Built-in embedding generation via Microsoft.Extensions.AI.
  6. Overview of Microsoft.Extensions.AI.Evaluation libraries

    main

    The Microsoft.Extensions.AI.Evaluation libraries are a set of .NET packages designed to support building processes for evaluating the quality and safety of AI software. The ecosystem is divided into several specialized packages:

    • Microsoft.Extensions.AI.Evaluation: Core abstractions and types.
    • Microsoft.Extensions.AI.Evaluation.Quality: Evaluators for response quality (e.g., Relevance, Truth, Completeness, Fluency, Coherence, Retrieval, Equivalence, and Groundedness).
    • Microsoft.Extensions.AI.Evaluation.Safety: Evaluators built on Azure AI Foundry Evaluation service for content safety (e.g., Protected Material, Groundedness Pro, Ungrounded Attributes, Hate and Unfairness, Self Harm, Violence, Sexual, Code Vulnerability, and Indirect Attack).
    • Microsoft.Extensions.AI.Evaluation.NLP: Evaluators for NLP and machine translation tasks (e.g., BLEU, GLEU, and F1 scores).
    • Microsoft.Extensions.AI.Evaluation.Reporting: Support for caching LLM responses, storing evaluation results, and generating reports.
    • Microsoft.Extensions.AI.Evaluation.Reporting.Azure: Azure Storage implementation for caching and storing evaluation results.
    • Microsoft.Extensions.AI.Evaluation.Console: A command-line tool for managing evaluation data and generating reports.
  7. Overview of Microsoft.Extensions.Caching.Hybrid

    main

    The Microsoft.Extensions.Caching.Hybrid package provides a concrete implementation of the HybridCache API. It is designed to simplify and enhance cache usage by encapsulating serialization and cache management details.

    Key features include:

    • Built on IDistributedCache: Works immediately with existing backends like Redis, SQL Server, and CosmosDB.
    • Cache-stampede protection: Combines concurrent requests for the same data to prevent multiple simultaneous calls to the underlying data source.
    • Performance enhancements: Includes built-in support for the IBufferDistributedCache API.
    • Configurable serialization: Allows for fully customizable serialization logic.
  8. Use Microsoft.Extensions.AmbientMetadata.Build to access build information at runtime

    main

    The Microsoft.Extensions.AmbientMetadata.Build provider allows applications to access build-time metadata (such as CI/CD environment variables) during runtime. It specifically targets variables provided by build systems like Azure DevOps and GitHub Actions.

    To use this, ensure your build environment provides the standard environment variables defined by your CI provider: