equadrat.Framework.Core.UI.Wpf 7.1.0

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package equadrat.Framework.Core.UI.Wpf --version 7.1.0                
NuGet\Install-Package equadrat.Framework.Core.UI.Wpf -Version 7.1.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="equadrat.Framework.Core.UI.Wpf" Version="7.1.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add equadrat.Framework.Core.UI.Wpf --version 7.1.0                
#r "nuget: equadrat.Framework.Core.UI.Wpf, 7.1.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install equadrat.Framework.Core.UI.Wpf as a Cake Addin
#addin nuget:?package=equadrat.Framework.Core.UI.Wpf&version=7.1.0

// Install equadrat.Framework.Core.UI.Wpf as a Cake Tool
#tool nuget:?package=equadrat.Framework.Core.UI.Wpf&version=7.1.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

NuGet Version
Azure DevOps coverage
Azure DevOps tests

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 Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net5.0-windows7.0 is compatible.  net6.0 was computed.  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.  net6.0-windows7.0 is compatible.  net7.0 was computed.  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.  net7.0-windows7.0 is compatible.  net8.0 was computed.  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.  net8.0-windows7.0 is compatible. 
.NET Core netcoreapp3.1 is compatible. 
.NET Framework net462 is compatible.  net463 was computed.  net47 is compatible.  net471 is compatible.  net472 is compatible.  net48 is compatible.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on equadrat.Framework.Core.UI.Wpf:

Package Downloads
equadrat.Framework.Mvvm.Wpf

A framework to extend the Microsoft .net framework with extra mvvm functionality.

equadrat.Framework.Mvvm.SinglePageView.Wpf

A framework to extend the Microsoft .net framework with extra mvvm functionality.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
7.3.0 156 11/14/2024
7.2.1 154 9/21/2024
7.2.0 226 6/30/2024
7.1.0 228 4/20/2024
7.0.1 227 4/6/2024
7.0.0 238 4/1/2024
6.4.4 171 3/16/2024
6.4.3 183 3/9/2024
6.4.2 260 3/3/2024
6.4.1 136 2/10/2024
6.4.0 303 12/30/2023
6.3.5 119 12/25/2023
6.3.4 153 12/5/2023
6.3.3 228 11/15/2023
6.3.2 150 10/21/2023
6.3.1 136 10/7/2023
6.3.0 210 10/1/2023

====
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