Skip to content

A basic and modern set of (opinionated) interfaces and abstractions, recyclable low-level functionalities, simple implementations of most common design patterns

License

Notifications You must be signed in to change notification settings

DogmaSolutions/Foundation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

Dogma Solutions Foundation

The Dogma Solutions "Foundation" project (2005-2025) is an attempt to provide a basic and modern set of (opinionated):

  • Interfaces and abstractions for objects, DTOs, an entities modeling
  • Recyclable low-level functionalities
  • Simple implementations of most common design patterns

Versions history and versioning criteria

All packages follows the conventions of Semantic Versioning 2.0.0.
Cit.:

Given a version number MAJOR.MINOR.PATCH, increment the:
1. MAJOR version when you make incompatible API changes
2. MINOR version when you add functionality in a backward compatible manner
3. PATCH version when you make backward compatible bug fixes

Additional labels for pre-release and build metadata are available as extensions
to the MAJOR.MINOR.PATCH format.

✅ v6.0 - Current

  • First release date: October 2025
  • .NET versions: netstandard2.0, net7.0, net8.0, net9.0
  • ❌ Dropped support to net6.0
  • *️⃣ Changed references to OPC Foundation 1.5 (previously was 1.4)

✅ v5.1 - Maintained

  • First release date: 2025/09/03
  • .NET versions: netstandard2.0, net6.0, net7.0, net8.0, net9.0
  • 🆕 Added CycloneDX SBOM functionalities
  • 🆕 Added SPDX SBOM functionalities
  • 💡 Use OPC Foundation 1.4

✅ v5.0 - Maintained

  • First release date: 2025/02/19
  • .NET versions: netstandard2.0, net6.0, net7.0, net8.0, net9.0
  • 🆕 Added support to net9.0
  • ❌ Dropped support to net472
  • 💡 Use OPC Foundation 1.4

✅ v4.5 - Maintained

  • First release date: 2025/10/01
  • .NET versions: netstandard2.0, net472, net5.0, net6.0, net7.0, net8.0
  • *️⃣ Changed references to OPC Foundation 1.5 (previously was 1.4)

✅ v4.4 - Maintained

  • First release date: 2025/04/07
  • .NET versions: netstandard2.0, net472, net5.0, net6.0, net7.0, net8.0
  • 💡 Use OPC Foundation 1.4

✅ v4.3 - Maintained

  • First release date: 2024/04/16
  • .NET versions: netstandard2.0, net472, net5.0, net6.0, net7.0, net8.0
  • 💡 Use OPC Foundation 1.4

⚠ v4.2 - Obsolete

  • First release date: 2024/02/09
  • .NET versions: netstandard2.0, net472, net5.0, net6.0, net7.0, net8.0
  • 🆕 Added support to net7.0
  • 🆕 Added support to net8.0

❌ 4.1.* - EOS

  • First release date: 2024/02/08
  • .NET versions: netstandard2.0, net472, net5.0, net6.0

❌ 4.0.* - EOS

  • First release date: 2023/08/12
  • .NET versions: netstandard2.0, net472, net5.0, net6.0

❌ 3.2.* - EOS

  • First release date: 2023/10/08
  • .NET versions: netstandard2.0, net472, net5.0, net6.0

❌ 3.1.* - EOS

  • First release date: 2023/05/29
  • .NET versions: netstandard2.0, net472, net5.0, net6.0
  • 🆕 Added support to net5.0
  • 🆕 Added support to net6.0

❌ 3.0.* - EOS

  • First release date: 2022/09/30
  • .NET versions: netstandard2.0, net472

❌ 2.0.* - EOS

  • First release date: 2020/04/27
  • .NET versions: netstandard2.0, net472
  • 🆕 Added support to netstandard2.0
  • 🆕 Added support to net472
  • ❌ Dropped support to net46

❌ 1.0.* - EOS

  • First release date: 2017/09/27
  • .NET versions: net46

Packages

Every package contains a specific subset of functionalities related to a specific area of interest.
Here follows a list of NuGet packages aggregated by topic.

Application infrastructure and configuration

Extensions to simplify the creation of application infrastructures.

  • DogmaSolutions.ApplicationInfrastructure on NuGet DogmaSolutions.ApplicationInfrastructure
  • DogmaSolutions.AspNetCore on NuGet DogmaSolutions.AspNetCore
  • DogmaSolutions.AspNetCore.Security on NuGet DogmaSolutions.AspNetCore.Security
  • DogmaSolutions.CommandLine on NuGet DogmaSolutions.CommandLine
  • DogmaSolutions.Configuration on NuGet DogmaSolutions.Configuration
  • DogmaSolutions.Configuration.SqlLite on NuGet DogmaSolutions.Configuration.SqlLite
  • DogmaSolutions.Configuration.SqlServer on NuGet DogmaSolutions.Configuration.SqlServer

Benchmarking and monitoring

Basic functions to implement integrated benchmarks inside performance-aware applications.

  • DogmaSolutions.Benchmarking on NuGet DogmaSolutions.Benchmarking
  • DogmaSolutions.Benchmarking.MicrosoftLogging on NuGet DogmaSolutions.Benchmarking.MicrosoftLogging
  • DogmaSolutions.Prtg on NuGet DogmaSolutions.Prtg

Security and cryptography

Functionalities that extend and simplify the usage of existing cryptographic frameworks and security-aware libraries.

  • DogmaSolutions.Certificates on NuGet DogmaSolutions.Certificates
  • DogmaSolutions.Cryptography on NuGet DogmaSolutions.Cryptography
  • DogmaSolutions.AspNetCore.Security on NuGet DogmaSolutions.AspNetCore.Security
  • DogmaSolutions.Security on NuGet DogmaSolutions.Security
  • DogmaSolutions.Security.Ldap on NuGet DogmaSolutions.Security.Ldap
  • DogmaSolutions.EntityFrameworkCore.Encryption on NuGet DogmaSolutions.EntityFrameworkCore.Encryption
  • DogmaSolutions.EntityFrameworkCore.Encryption.Abstractions on NuGet DogmaSolutions.EntityFrameworkCore.Encryption.Abstractions

Primitives, data modeling and data manipulation

Utils to manipulate primitives and low-level data formats.

  • DogmaSolutions.Contracts on NuGet DogmaSolutions.Contracts
  • DogmaSolutions.Collections on NuGet DogmaSolutions.Collections
  • DogmaSolutions.Collections.Smart on NuGet DogmaSolutions.Collections.Smart
  • DogmaSolutions.Csv on NuGet DogmaSolutions.Csv
  • DogmaSolutions.Geography on NuGet DogmaSolutions.Geography
  • DogmaSolutions.Json on NuGet DogmaSolutions.Json
  • DogmaSolutions.PrimitiveTypes on NuGet DogmaSolutions.PrimitiveTypes
  • DogmaSolutions.Xml on NuGet DogmaSolutions.Xml

Low-level utils

Low-level utils of various kinds.

  • DogmaSolutions.Statistics on NuGet DogmaSolutions.Statistics
  • DogmaSolutions.Tasking on NuGet DogmaSolutions.Tasking
  • DogmaSolutions.I18n on NuGet DogmaSolutions.I18n
  • DogmaSolutions.ErrorsHandling on NuGet DogmaSolutions.ErrorsHandling
  • DogmaSolutions.FileSystem on NuGet DogmaSolutions.FileSystem
  • DogmaSolutions.Networking on NuGet DogmaSolutions.Networking

Reflection

Reflection functionalities and helpers to discover assemblies and types based on their features and contents.

  • DogmaSolutions.Reflection on NuGet DogmaSolutions.Reflection
  • DogmaSolutions.Reflection.Discovery on NuGet DogmaSolutions.Reflection.Discovery

Design abstractions and Design Patterns

Classes, interfaces, datamodels and basic implementations of commonly used design patterns

  • DogmaSolutions.DataContracts on NuGet DogmaSolutions.DataContracts
  • DogmaSolutions.DesignPatterns on NuGet DogmaSolutions.DesignPatterns
  • DogmaSolutions.StateMachines on NuGet DogmaSolutions.StateMachines
  • DogmaSolutions.Services on NuGet DogmaSolutions.Services
  • DogmaSolutions.Services.Serialization on NuGet DogmaSolutions.Services.Serialization

Industrial automation and system integration

Functionalities to build supervisors of industrial devices.

  • DogmaSolutions.Devices on NuGet DogmaSolutions.Devices
  • DogmaSolutions.Devices.I40 on NuGet DogmaSolutions.Devices.I40

IBH devices: functionalities to build supervisors of industrial devices based on IBH technology

  • DogmaSolutions.Devices.Ibh on NuGet DogmaSolutions.Devices.Ibh
  • DogmaSolutions.Devices.Ibh.I40 on NuGet DogmaSolutions.Devices.Ibh.I40

Siemens devices: functionalities to build supervisors of industrial devices based on Siemens S7 technology

  • DogmaSolutions.Devices.Siemens on NuGet DogmaSolutions.Devices.Siemens
  • DogmaSolutions.Devices.Siemens.I40 on NuGet DogmaSolutions.Devices.Siemens.I40

OPC-UA-abled devices: functionalities to build supervisors of industrial devices able to communicate via OPC-UA

  • DogmaSolutions.Devices.Opc.Ua on NuGet DogmaSolutions.Devices.Opc.Ua
  • DogmaSolutions.Devices.Opc.Ua.Abstractions on NuGet DogmaSolutions.Devices.Opc.Ua.Abstractions

OPC-UA integration: services, utils and extensions to build OPC-UA clients, servers and supervisors

  • DogmaSolutions.Opc.Ua.Client on NuGet DogmaSolutions.Opc.Ua.Client
  • DogmaSolutions.Opc.Ua.Server on NuGet DogmaSolutions.Opc.Ua.Server
  • DogmaSolutions.Opc.Ua.Server.Abstractions on NuGet DogmaSolutions.Opc.Ua.Server.Abstractions
  • DogmaSolutions.Opc.Ua.Server.Hosting on NuGet DogmaSolutions.Opc.Ua.Server.Hosting
  • DogmaSolutions.Opc.Ua.Server.Hosting.Abstractions on NuGet DogmaSolutions.Opc.Ua.Server.Hosting.Abstractions

Media

Images and videos manipulation

  • DogmaSolutions.Drawing on NuGet DogmaSolutions.Drawing
  • DogmaSolutions.Mjpeg on NuGet DogmaSolutions.Mjpeg

Data, database and entities

Extensions and basic functionalities to build data-management layers and infrastructures.

  • DogmaSolutions.Data on NuGet DogmaSolutions.Data
  • DogmaSolutions.Data.Materialization on NuGet DogmaSolutions.Data.Materialization
  • DogmaSolutions.Data.Sql on NuGet DogmaSolutions.Data.Sql
  • DogmaSolutions.Entities.Contracts on NuGet DogmaSolutions.Entities.Contracts
  • DogmaSolutions.EntityFrameworkCore.AspNetCore on NuGet DogmaSolutions.EntityFrameworkCore.AspNetCore
  • DogmaSolutions.EntityFrameworkCore.Auditing on NuGet DogmaSolutions.EntityFrameworkCore.Auditing → utils to facilitate the implementation of auditing functionalities at DatabaseContext-level
  • DogmaSolutions.EntityFrameworkCore.Contracts on NuGet DogmaSolutions.EntityFrameworkCore.Contracts
  • DogmaSolutions.EntityFrameworkCore.Secured on NuGet DogmaSolutions.EntityFrameworkCore.Secured → utils to facilitate the implementation of data-access services including security checks
  • DogmaSolutions.EntityFrameworkCore.Unsecured on NuGet DogmaSolutions.EntityFrameworkCore.Unsecured → utils to facilitate the implementation of data-access services without security checks
  • DogmaSolutions.EntityFrameworkCore.Utils on NuGet DogmaSolutions.EntityFrameworkCore.Utils
  • DogmaSolutions.EntityFrameworkCore.Encryption on NuGet DogmaSolutions.EntityFrameworkCore.Encryption → utils to facilitate column encryption using a configurable key
  • DogmaSolutions.EntityFrameworkCore.Checks on NuGet DogmaSolutions.EntityFrameworkCore.Checks → utils to create check constraints
  • DogmaSolutions.EntityFrameworkCore.Encryption.Abstractions on NuGet DogmaSolutions.EntityFrameworkCore.Encryption.Abstractions
  • DogmaSolutions.SqlServer.LocalDb on NuGet DogmaSolutions.SqlServer.LocalDb

Plugins and extensibility

Extensions for lightweight extensibility and pluggability management.

  • DogmaSolutions.Extensibility on NuGet DogmaSolutions.Extensibility
  • DogmaSolutions.Extensibility.HostedEnvironment on NuGet DogmaSolutions.Extensibility.HostedEnvironment

Logging

Multiple extensions to industry-standard logging libraries.

  • DogmaSolutions.Log4NetExtensions on NuGet DogmaSolutions.Log4NetExtensions
  • DogmaSolutions.MicrosoftLoggingExtensions on NuGet DogmaSolutions.MicrosoftLoggingExtensions
  • DogmaSolutions.SlidingWindowLogger on NuGet DogmaSolutions.SlidingWindowLogger

Validation

Extensions and utils for datamodels validations

  • DogmaSolutions.Validation on NuGet DogmaSolutions.Validation

Automated testing

Helper functions and classes for automated tests implementation

  • DogmaSolutions.Tests on NuGet DogmaSolutions.Tests

Anagraphics models

Basic archetypes and datamodels of commonly used anagraphic entities

  • DogmaSolutions.Anagraphics on NuGet DogmaSolutions.Anagraphics

License

All packages of the "Foundation" project are released under the MIT License.

About

A basic and modern set of (opinionated) interfaces and abstractions, recyclable low-level functionalities, simple implementations of most common design patterns

Topics

Resources

License

Stars

Watchers

Forks