乘風破浪,遇見最佳跨平台跨終端框架.Net Core/.Net生態 – 官方擴展集錦(Microsoft.Extensions on Nuget)

什麼是Microsoft.Extensions

.NET Platform Extensions是一套.Net官方的API集合,提供了一些常用的編程模式和實用工具,例如依賴項注入、日誌記錄、快取、Host以及配置等等。

//docs.microsoft.com/en-us/dotnet/api/?view=dotnet-plat-ext-6.0

image

//github.com/aspnet/Announcements/issues/411

.NET Platform Extensions程式碼已經從之前單獨維護的//github.com/dotnet/extensions轉移到了//github.com/dotnet/runtime//github.com/dotnet/aspnetcore中統一管理。

image

Microsoft.Extensions Nuget包

這些都是官方輪子,但是也是平時我們的使用首選。

Caching組

名稱 備註
Microsoft.Extensions.Caching.Memory >= .NET 5.0;
>= .NET Core App 2.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.1;
Microsoft.Extensions.Caching.Abstractions >= .NET 5.0;
>= .NET Core App 2.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.1;
Microsoft.Extensions.Caching.SqlServer >= .NET 7.0;
>= .NET Core App 2.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Caching.StackExchangeRedis >= .NET 7.0;
>= .NET Core App 2.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Caching.Redis >= .NET Standard 2.0;
Microsoft.Extensions.Caching.Cosmos >= .NET Standard 2.0;

Configuration組

名稱 備註
Microsoft.Extensions.Configuration >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Configuration.Abstractions >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Configuration.Binder >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Configuration.CommandLine >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Configuration.EnvironmentVariables >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2
Microsoft.Extensions.Configuration.FileExtensions >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Configuration.Ini >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Configuration.Json >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Configuration.Xml >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Configuration.UserSecrets >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Configuration.KeyPerFile >= .NET 7.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Configuration.AzureAppConfiguration >= .NET Standard 2.0;

Dependency Injection組

名稱 備註
Microsoft.Extensions.DependencyInjection >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.DependencyInjection.Abstractions >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.DependencyInjection.Specification.Tests >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;

Dependency Model組

名稱 備註
Microsoft.Extensions.DependencyModel >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;

File Providers組

名稱 備註
Microsoft.Extensions.FileProviders.Abstractions >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.FileProviders.Physical >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.FileProviders.Composite >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.FileProviders.Embedded >= .NET 7.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;

File System Globbing組

名稱 備註
Microsoft.Extensions.FileSystemGlobbing >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;

Hosting組

名稱 備註
Microsoft.Extensions.Hosting >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Hosting.Abstractions >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Hosting.WindowsServices >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Hosting.Systemd >= .NET 6.0;
>= .NET Standard 2.1;

Http Client Factory組

名稱 備註
Microsoft.Extensions.Http >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Http.Polly >= .NET Standard 2.0;

Logging組

名稱 備註
Microsoft.Extensions.Logging >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Logging.Abstractions >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Logging.Configuration >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Logging.Console >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Logging.Debug >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Logging.EventSource >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Logging.EventLog >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Logging.TraceSource >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Logging.ApplicationInsights >= .NET Standard 2.0;
Microsoft.Extensions.Logging.AzureAppServices >= .NET 7.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;

Options組

名稱 備註
Microsoft.Extensions.Options >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Options.ConfigurationExtensions >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Options.DataAnnotations >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;

Primitives組

名稱 備註
Microsoft.Extensions.Primitives >= .NET 6.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;

Diagnostics組

名稱 備註
Microsoft.Extensions.Diagnostics.HealthChecks >= .NET 7.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions >= .NET 7.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore >= .NET 7.0;

JSInterop組

名稱 備註
Microsoft.JSInterop >= .NET 7.0;
Microsoft.JSInterop.WebAssembly >= .NET 7.0;

Localization組

名稱 備註
Microsoft.Extensions.Localization >= .NET 7.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Localization.Abstractions >= .NET 7.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;

Object Pool組

名稱 備註
Microsoft.Extensions.ObjectPool >= .NET 7.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;

WebEncoders組

名稱 備註
Microsoft.Extensions.WebEncoders >= .NET 7.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;

Identity組

名稱 備註
Microsoft.Extensions.Identity.Core >= .NET 7.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;
Microsoft.Extensions.Identity.Stores >= .NET 7.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2

Azure組

名稱 備註
Microsoft.Extensions.Azure >= .NET Standard 2.0;

Features組

名稱 備註
Microsoft.Extensions.Features >= .NET 7.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.2;

Machine Learning組

名稱 備註
Microsoft.Extensions.ML >= .NET Standard 2.0;

過期組

名稱 備註
Microsoft.Extensions.DiagnosticAdapter >= .NET Core 2.0;
>= .NET Standard 2.0;
>= .NET Framework 4.6.1;
Microsoft.Extensions.Configuration.NewtonsoftJson >= .NET Standard 2.0;
Microsoft.Extensions.Configuration.FileProviderExtensions >= .NET Framework 4.5.1;
Mono.WebAssembly.Interop >= .NET Standard 2.1;
Microsoft.Extensions.PlatformAbstractions >= .NET Standard 1.3;
>= .NET Framework 4.5.1;
Microsoft.Extensions.CommandLineUtils >= .NET Standard 1.3;
>= .NET Framework 4.5.1;
Microsoft.Extensions.Globalization.CultureInfoCache >= .NET Standard 1.1;
Microsoft.Extensions.SecretManager.Tools
Microsoft.Extensions.Logging.Filter >= .NET Standard 1.1;
Microsoft.Extensions.WebEncoders.Core >= .NET Framework 4.5.1;
Microsoft.Extensions.MemoryPool >= .NET Framework 4.5.1;
Microsoft.Extensions.Caching.SqlConfig.Tools
Microsoft.Extensions.CodeGenerators.Mvc
Microsoft.Extensions.CodeGeneration
Microsoft.Extensions.CodeGeneration.Templating
Microsoft.Extensions.CodeGeneration.Core
Microsoft.Extensions.CodeGeneration.EntityFramework
Microsoft.NETCore.Platforms >= .NET Standard 1.0;

Microsoft.System Nuget包

System組

名稱 備註
System.Threading.Tasks.Extensions >= .NET Core 2.1;
>= .NET Standard 1.0;
>= .NET Framework 4.6.1;
System.Diagnostics.DiagnosticSource >= .NET 5.0;
>= .NETStandard 2.0;
>= .NETFramework 4.6.1;
System.Buffers >= .NET Core 2.0;
>= .NET Standard 1.1;
>= .NET Framework 4.5;
System.Memory >= .NET Core 2.1;
>= .NET Standard 1.1;
>= .NET Framework 4.6.1;

參考