equadrat.Framework.Core.Microsoft.Extensions.DependencyInjection
7.3.0
Prefix Reserved
dotnet add package equadrat.Framework.Core.Microsoft.Extensions.DependencyInjection --version 7.3.0
NuGet\Install-Package equadrat.Framework.Core.Microsoft.Extensions.DependencyInjection -Version 7.3.0
<PackageReference Include="equadrat.Framework.Core.Microsoft.Extensions.DependencyInjection" Version="7.3.0" />
paket add equadrat.Framework.Core.Microsoft.Extensions.DependencyInjection --version 7.3.0
#r "nuget: equadrat.Framework.Core.Microsoft.Extensions.DependencyInjection, 7.3.0"
// Install equadrat.Framework.Core.Microsoft.Extensions.DependencyInjection as a Cake Addin #addin nuget:?package=equadrat.Framework.Core.Microsoft.Extensions.DependencyInjection&version=7.3.0 // Install equadrat.Framework.Core.Microsoft.Extensions.DependencyInjection as a Cake Tool #tool nuget:?package=equadrat.Framework.Core.Microsoft.Extensions.DependencyInjection&version=7.3.0
equadrat Framework Core
The idea of the equadrat Framework is to provide APIs to build applications with an architecture of highly decoupled components. Every single component, aspect or pattern is represented by interfaces. The framework provides a standard implementation for these but each type can be replaced by a custom implementation.
The framework is not about reimplementing components, but making them available using common interfaces.
Status
Getting started
You can use most of the components by simply instantiating them. This is maybe the easiest way to evaluate the framework.
If you're using an IOC/DI container such as Microsoft Extensions DependencyInjection or if you want to use the built-in IOC framework, you can use the bootstrapper and bootstrapper modules to register the framework to the IOC.
Usage
Have a look at the example applications on my website and in the wiki.
Interesting components
This is a list of some (not all) components of the framework which might be interesting for you.
Architecture
- ICoreCommandFactory
- ICoreEventFactory
- ICoreEventHandlerInterruptRegistry
- ICoreInstancePoolFactory
- ICoreOwnerTokenFactory
- ICorePropertyObserverFactory
- ICoreSequenceDependencyTrackerFactory
- ICoreSuspendableRelayFactory
- ICoreSystemTimeProvider
Collections & Data
- ICoreBinaryOperationsHelper
- ICoreCollectionHelper
- ICoreCollectionFactory
- ICoreArrayList
- ICoreBinaryHeap
- ICoreList
- ICoreListSegment
- ICoreObservableCollection
- ICorePrioritizedQueue
- ICorePrioritizedStack
- ICorePolymorphList
- ICoreQueue
- ICoreReadOnlyList
- ICoreReadOnlyListSegment
- ICoreReadOnlyListWithExclusion
- ICoreReadOnlyObservableCollection
- ICoreStack
- ICoreCollectionObserverFactory
- ICoreCollectionMerger
- ICoreCollectionObserver
- ICoreCollectionSorter
- ICoreCollectionSplitter
- ICoreEmbeddedResourceAccessor
- ICoreHashProcessor
- ICoreHashProcessorProvider
- ICoreRandomDataProvider
- ICoreStringPatternPredicateFactory
- ICoreValueConverterFactory
- ICoreVarIntHelper
IOC
- ICoreBootstrapper
- ICoreBootstrapperModule
- ICoreBootstrapperHostProvider
- ICoreIOCFactory
- ICoreIOCInstanceFactory
- ICoreIOCInstanceProvider
- ICoreIOCRegistry
- CoreIOCRegistry
- CoreServiceCollectionWrapper & CoreServiceProviderWrapper
Reflection
- ICoreExpressionHelper
- ICoreReflectionHelper
Logging
- ICoreLoggingContext
- ICoreLoggingEvent
- ICoreLoggingProduct
- ICoreLoggingTarget
- CoreAppInsightsLoggingTarget
- CoreLoggingConsoleLogTarget
- CoreLoggingTextFileTarget
- CoreLoggingTraceLogTarget
- CoreNLogTarget
- CoreSerilogTarget
Serialization
- ICoreSerializer
- ICoreSerializerFormat
- CoreBsonNewtonsoftFormat
- CoreJsonDataContractFormat
- CoreJsonNewtonsoftFormat
- CoreProtobufFormat
- CoreXmlClassicFormat
- CoreXmlDataContractFormat
- ICoreSerializerProvider
Threading
- ICoreDispatcher
- CoreAvaloniaDispatcher
- CoreMauiDispatcher
- CoreThreadDispatcher
- CoreWebAssemblyDispatcher
- CoreWpfDispatcher
- CoreXamarinFormsDispatcher
- ICoreLockFactory
- ICoreTaskFactory
- ICoreTaskQueue
- ICoreTaskScheduler
- ICoreThreadFactory
- ICoreThreadPool
Cryptography
- ICoreCryptographyAsymmetricCipherGenerator
- ICoreCryptographyAsymmetricCipherOperator
- ICoreCryptographyAsymmetricCipherOperatorProvider
- ICoreCryptographySigner
- ICoreCryptographySignerProvider
Licensing
- ICoreLicenseFactory
- ICoreLicenseOperator
- ICoreLicenseValidator
Native code & marshalling
- ICoreNativeLibraryLoader
Compatibility
The plan is to keep the equadrat Framework compatible to these .net versions as long as possible.
.net version | min | max |
---|---|---|
Core | 3.1 | ≥ 8.x |
Standard | 2.0 | ≥ 2.1 |
Framework | 4.6.2 | ≥ 4.8.x |
Version scheme and breaking changes
Version change | Scope |
---|---|
Major | Overhaul of the project |
Minor | Some types have changed |
Revision | Fully backward compatible |
Build | Set in preview versions only |
Additional documentation
You can find some guides regarding specific features on my website: www.equadrat.net
Feedback
You can contact me on my website: www.equadrat.net
License
Please respect the license and check equadrat.Framework.Core.License.md before using the package.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- equadrat.Framework.Core (>= 7.3.0)
- equadrat.Framework.Core.Interfaces (>= 7.3.0)
- Microsoft.Bcl.AsyncInterfaces (>= 9.0.0)
- Microsoft.Bcl.HashCode (>= 6.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.0)
- System.Buffers (>= 4.6.0)
- System.Memory (>= 4.6.0)
-
.NETStandard 2.1
- equadrat.Framework.Core (>= 7.3.0)
- equadrat.Framework.Core.Interfaces (>= 7.3.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.0)
-
net5.0
- equadrat.Framework.Core (>= 7.3.0)
- equadrat.Framework.Core.Interfaces (>= 7.3.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.0)
-
net6.0
- equadrat.Framework.Core (>= 7.3.0)
- equadrat.Framework.Core.Interfaces (>= 7.3.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.0)
-
net7.0
- equadrat.Framework.Core (>= 7.3.0)
- equadrat.Framework.Core.Interfaces (>= 7.3.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.0)
-
net8.0
- equadrat.Framework.Core (>= 7.3.0)
- equadrat.Framework.Core.Interfaces (>= 7.3.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.0)
-
net9.0
- equadrat.Framework.Core (>= 7.3.0)
- equadrat.Framework.Core.Interfaces (>= 7.3.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.0)
NuGet packages (4)
Showing the top 4 NuGet packages that depend on equadrat.Framework.Core.Microsoft.Extensions.DependencyInjection:
Package | Downloads |
---|---|
equadrat.Framework.Core.Microsoft.Extensions.Hosting
A framework to extend the Microsoft .net framework with extra core functionality. |
|
equadrat.Framework.Core.Microsoft.Extensions.AspNetCore.WebAssembly
A framework to extend the Microsoft .net framework with extra core functionality. |
|
equadrat.Framework.Core.Microsoft.Extensions.AspNetCore.App
A framework to extend the Microsoft .net framework with extra core functionality. |
|
equadrat.Framework.Test.MSTest.Extensions.DependencyInjection
A framework to extend the Microsoft .net framework with extra test functionality. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
7.3.0 | 243 | 11/14/2024 |
7.2.1 | 281 | 9/21/2024 |
7.2.0 | 334 | 6/30/2024 |
7.1.0 | 348 | 4/20/2024 |
7.0.1 | 317 | 4/6/2024 |
7.0.0 | 308 | 4/1/2024 |
6.4.4 | 306 | 3/16/2024 |
6.4.3 | 276 | 3/9/2024 |
6.4.2 | 318 | 3/3/2024 |
6.4.1 | 258 | 2/10/2024 |
6.4.0 | 473 | 12/30/2023 |
6.3.5 | 235 | 12/25/2023 |
6.3.4 | 357 | 12/5/2023 |
6.3.3 | 394 | 11/15/2023 |
6.3.2 | 534 | 10/21/2023 |
6.3.1 | 383 | 10/7/2023 |
6.3.0 | 249 | 10/1/2023 |
====
v7.3.0
====
- Added support for .net 9.
- Updated NuGet package references.
- Fixed bug in CoreLogger (Microsoft.Extensions.Logging) ignoring late changes to ICoreLoggingCategoryNameSubstitutionRegistry.
- Added serializer for System.Text.Json (FormatName: JSON/TEXT).
- Added extension method for easier integration of bootstrapper modules when using Microsoft.Extensions.Hosting.
====
v7.2.1
====
- Fixed CoreCustomModelBinderProvider to handle complex types only.
- Fixed CoreMicrosoftExtensionsAspNetCoreMvcHelper to enlist instances of CoreCustomModelBinderProvider at a later position in the sequence of model binder providers but before ComplexTypeModelBinderProvider.
- Updated ValueConverterChain to provide the target type(s) to the value converters of the chain.
- Updated NuGet package references.
====
v7.2.0
====
- Added support for asynchronous events using ICoreEventFactory.
- Refactored CoreRuntimeInformation to support OS-platforms WEBASSEMBLY, WASM, WASI and BROWSER.
- Refactored ICoreAsyncObservable.SubscribeAsync to return ValueTask<IAsyncDisposable>.
- Updated NuGet package references.
====
v7.1.0
====
- Removed CoreTplThreadPool and CoreTplTaskScheduler.
- Moved CoreHashCode from Framework.Core to Framework.Core.Interfaces.
- Added missing NotNullIfNotNullAttribute to CoreEnumerableExtensions.AsCollection.
====
v7.0.1
====
- Maintenance release
====
v7.0.0
====
- Initial Release