Skip to content

A lightweight collection of foundational .NET libraries for standardizing technical and functional development with reusable components.

License

Notifications You must be signed in to change notification settings

PosInformatique/PosInformatique.Foundations

Repository files navigation

PosInformatique.Foundations

PosInformatique.Foundations icon

PosInformatique.Foundations is a collection of small, focused .NET libraries that provide simple, reusable building blocks for your applications.

The goal is to avoid shipping a monolithic framework by creating modular NuGet packages, each addressing a single responsibility.

✨ Philosophy

  • Granular: each library is independent, lightweight, and minimal.
  • Composable: you bring exactly the pieces you need, nothing more.
  • Practical: packages can be foundational (value objects, abstractions, contracts) or technical utilities (helpers, validation rules, extensions).
  • Consistent: all packages follow the same naming convention and version alignment.
  • Standards-based: whenever possible, implementations follow well-known standards (e.g. RFC 5322 for email addresses, E.164 for phone numbers,...).

➡️ Each package has no strong dependency on another. You are free to pick only what you need.
➡️ These libraries are not structuring frameworks; they are small utilities meant to fill missing gaps in your applications.

📦 Packages Overview

You can install any package using the .NET CLI or NuGet Package Manager.

Package Description NuGet
PosInformatique.Foundations.EmailAddresses icon PosInformatique.Foundations.EmailAddresses Strongly-typed value object representing an email address with validation and normalization as RFC 5322 compliant. NuGet
PosInformatique.Foundations.EmailAddresses.EntityFramework icon PosInformatique.Foundations.EmailAddresses.EntityFramework Entity Framework Core integration for the EmailAddress value object, including property configuration and value converter for seamless database persistence. NuGet
PosInformatique.Foundations.EmailAddresses.FluentValidation icon PosInformatique.Foundations.EmailAddresses.FluentValidation FluentValidation integration for the EmailAddress value object, providing dedicated validators and rules to ensure RFC 5322 compliant email addresses. NuGet
PosInformatique.Foundations.EmailAddresses.Json icon PosInformatique.Foundations.EmailAddresses.Json System.Text.Json converter for the EmailAddress value object, enabling seamless serialization and deserialization of RFC 5322 compliant email addresses. NuGet
PosInformatique.Foundations.Emailing icon PosInformatique.Foundations.Emailing Template-based emailing infrastructure for .NET that lets you register strongly-typed email templates, create emails from models, and send them through pluggable providers. NuGet
PosInformatique.Foundations.Emailing.Azure icon PosInformatique.Foundations.Emailing.Azure IEmailProvider implementation for PosInformatique.Foundations.Emailing using Azure Communication Service. NuGet
PosInformatique.Foundations.Emailing.Graph icon PosInformatique.Foundations.Emailing.Graph IEmailProvider implementation for PosInformatique.Foundations.Emailing using Microsoft Graph API. NuGet
PosInformatique.Foundations.Emailing.Templates.Razor icon PosInformatique.Foundations.Emailing.Templates.Razor Helpers to build EmailTemplate instances from Razor components for subject and HTML body, supporting strongly-typed models and reusable layouts. NuGet
PosInformatique.Foundations.MediaTypes icon PosInformatique.Foundations.MediaTypes Immutable MimeType value object with well-known media types and helpers to map between media types and file extensions. NuGet
PosInformatique.Foundations.MediaTypes.EntityFramework icon PosInformatique.Foundations.MediaTypes.EntityFramework Entity Framework Core integration for the MimeType value object, including property configuration and value converter for seamless database persistence. NuGet
PosInformatique.Foundations.MediaTypes.Json icon PosInformatique.Foundations.MediaTypes.Json System.Text.Json converter for the MimeType value object, enabling seamless serialization and deserialization of MIME types within JSON documents. NuGet
PosInformatique.Foundations.People icon PosInformatique.Foundations.People Strongly-typed value objects for first and last names with validation and normalization. NuGet
PosInformatique.Foundations.People.DataAnnotations icon PosInformatique.Foundations.People.DataAnnotations DataAnnotations attributes for FirstName and LastName value objects. NuGet
PosInformatique.Foundations.People.EntityFramework icon PosInformatique.Foundations.People.EntityFramework Entity Framework Core integration for FirstName and LastName value objects, providing fluent property configuration and value converters. NuGet
PosInformatique.Foundations.People.FluentAssertions icon PosInformatique.Foundations.People.FluentAssertions FluentAssertions extensions for FirstName and LastName to avoid ambiguity and provide Should().Be(string) assertions (case-sensitive on normalized values). NuGet
PosInformatique.Foundations.People.FluentValidation icon PosInformatique.Foundations.People.FluentValidation FluentValidation extensions for FirstName and LastName value objects. NuGet
PosInformatique.Foundations.People.Json icon PosInformatique.Foundations.People.Json System.Text.Json converters for FirstName and LastName, with validation and easy registration via AddPeopleConverters(). NuGet
PosInformatique.Foundations.PhoneNumbers icon PosInformatique.Foundations.PhoneNumbers Strongly-typed value object representing a phone number in E.164 format, with parsing (including region-aware local numbers), validation, comparison, and formatting helpers. NuGet
PosInformatique.Foundations.PhoneNumbers.EntityFramework icon PosInformatique.Foundations.PhoneNumbers.EntityFramework Entity Framework Core integration for the PhoneNumber value object, mapping it to a SQL PhoneNumber column type backed by VARCHAR(16) using a dedicated value converter. NuGet
PosInformatique.Foundations.PhoneNumbers.FluentValidation icon PosInformatique.Foundations.PhoneNumbers.FluentValidation FluentValidation integration for the PhoneNumber value object, providing dedicated validators and rules to ensure E.164 compliant phone numbers. NuGet
PosInformatique.Foundations.PhoneNumbers.Json icon PosInformatique.Foundations.PhoneNumbers.Json System.Text.Json converter for the PhoneNumber value object, enabling seamless serialization and deserialization of E.164 compliant phone numbers. NuGet
PosInformatique.Foundations.Text.Templating icon PosInformatique.Foundations.Text.Templating Abstractions for text templating, including the TextTemplate<TModel> base class and ITextTemplateRenderContext interface, to be used by concrete templating engine implementations such as Razor-based text templates. NuGet
PosInformatique.Foundations.Text.Templating.Razor icon PosInformatique.Foundations.Text.Templating.Razor Razor-based text templating using Blazor components, allowing generation of text from Razor views with a strongly-typed Model parameter and full dependency injection integration. NuGet
PosInformatique.Foundations.Text.Templating.Scriban icon PosInformatique.Foundations.Text.Templating.Scriban Scriban-based text templating with mustache-style syntax, allowing generation of text from templates using a strongly-typed model and automatic property exposure. NuGet

Note: Most of the packages are completely independent. You install only what you need.

🚀 Why use PosInformatique.Foundations?

  • Avoid reinventing common value objects and utilities.
  • Apply standards-based implementations (RFC, E.164, ...).
  • Improve consistency across your projects.
  • Get lightweight, modular libraries tailored to single responsibilities.
  • Add missing building blocks to your projects without introducing a heavyweight framework.

📄 License

Licensed under the MIT License.

About

A lightweight collection of foundational .NET libraries for standardizing technical and functional development with reusable components.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages