.NET Extensions is an open-source, cross-platform set of APIs for commonly used programming patterns and utilities, such as dependency injection, logging, and app configuration. Most of the API in this project is meant to work on many .NET platforms, such as .NET Core, .NET Framework, Xamarin, and others. While commonly used in ASP.NET Core applications, these APIs are not coupled to the ASP.NET Core application model. They can be used in console apps, WinForms and WPF, and others.
As part of the ongoing repository consolidation effort in .NET 5, we have moved most of the content from dotnet/extensions into other repositories. Most of these packages were developed by and are currently maintained by the ASP.NET team. However, moving forward we want to enable more scenarios with these packages, outside of ASP.NET. You can find more details on this in the official announcement of the changes coming to extensions.
The full list of packages that have moved can be found below and in the official announcement. In general, tests and samples have moved to the relevant repo based on where the main package moved. Issue tracking for the relevant packages has also moved to that repository.
The following list identifies all the packages we currently ship from dotnet/extensions and which repo they have moved to.
- Moved to dotnet/runtime
- Caching
- Configuration
Microsoft.Extensions.Configuration
Microsoft.Extensions.Configuration.Abstractions
Microsoft.Extensions.Configuration.Binder
Microsoft.Extensions.Configuration.CommandLine
Microsoft.Extensions.Configuration.EnvironmentVariables
Microsoft.Extensions.Configuration.FileExtensions
Microsoft.Extensions.Configuration.Ini
Microsoft.Extensions.Configuration.Json
Microsoft.Extensions.Configuration.UserSecrets
Microsoft.Extensions.Configuration.Xml
- Dependency Injection
- File Providers
- File System Globbing
- Hosting
- Http Client Factory
- Logging
Microsoft.Extensions.Logging
Microsoft.Extensions.Logging.Abstractions
Microsoft.Extensions.Logging.Configuration
Microsoft.Extensions.Logging.Console
Microsoft.Extensions.Logging.Debug
Microsoft.Extensions.Logging.EventLog
Microsoft.Extensions.Logging.EventSource
Microsoft.Extensions.Logging.Testing
Microsoft.Extensions.Logging.TraceSource
- Options
- Primitives
- Moved to dotnet/aspnetcore
- Configuration
- File Providers
- Health Checks
- JS Interop
- Localization
- Logging
- Object Pool
- Web Encoders
- Remaining in dotnet/extensions for now
- Caching
- Configuration
- Hosting
- Http Client Factory
- Logging
Microsoft.Extensions.Logging.Analyzers
(has not been released to NuGet.org as of writing)Microsoft.Extensions.DependencyInjection.Specification.Tests
- No longer shipping in 5.0
Follow the Get Started guide for .NET to setup an initial .NET application. Microsoft.Extensions APIs can then be added to the project using the NuGet Package Manager.
Some of the best ways to contribute are to try things out, file issues, join in design conversations, and make pull-requests.
- Download our latest daily builds
- Build .NET Extensions from source code
- Check out the contributing page to see the best places to log issues and start discussions.
Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) secure@microsoft.com. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the Security TechCenter.
These are some other repos for related projects:
- .NET Core - a cross-platform, open-source .NET platform
- ASP.NET Core - a .NET Core framework for building web apps
- Entity Framework Core - data access technology
See CODE-OF-CONDUCT
Some parts of this project have been forked by the community to add additional functionality:
This is a fork of Microsoft.Extensions.CommandLineUtils.