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.
- 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.
You can install any package using the .NET CLI or NuGet Package Manager.
Package | Description | NuGet | |
---|---|---|---|
![]() |
PosInformatique.Foundations.EmailAddresses | Strongly-typed value object representing an email address with validation and normalization as RFC 5322 compliant. | |
![]() |
PosInformatique.Foundations.EmailAddresses.EntityFramework | Entity Framework Core integration for the EmailAddress value object, including property configuration and value converter for seamless database persistence. | |
![]() |
PosInformatique.Foundations.EmailAddresses.FluentValidation | FluentValidation integration for the EmailAddress value object, providing dedicated validators and rules to ensure RFC 5322 compliant email addresses. | |
![]() |
PosInformatique.Foundations.EmailAddresses.Json | System.Text.Json converter for the EmailAddress value object, enabling seamless serialization and deserialization of RFC 5322 compliant email addresses. |
|
![]() |
PosInformatique.Foundations.People | Strongly-typed value objects for first and last names with validation and normalization. | |
![]() |
PosInformatique.Foundations.People.DataAnnotations | DataAnnotations attributes for FirstName and LastName value objects. |
|
![]() |
PosInformatique.Foundations.People.EntityFramework | Entity Framework Core integration for FirstName and LastName value objects, providing fluent property configuration and value converters. |
|
![]() |
PosInformatique.Foundations.People.FluentAssertions | FluentAssertions extensions for FirstName and LastName to avoid ambiguity and provide Should().Be(string) assertions (case-sensitive on normalized values). |
|
![]() |
PosInformatique.Foundations.People.FluentValidation | FluentValidation extensions for FirstName and LastName value objects. |
|
![]() |
PosInformatique.Foundations.People.Json | System.Text.Json converters for FirstName and LastName , with validation and easy registration via AddPeopleConverters() . |
Note: Each package is completely independent. You install only what you need.
- 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.
Licensed under the MIT License.