SAIF.Framework.Common overview¶
Documentation context: Package library Documented via:
.nuspec-referenced package (Common/SAIF.Common/SAIF.Framework.Common.nuspec)
SAIF.Framework.Common is a foundation, zero-dependency .NET Framework 4.6.2 utility library that supplies cross-cutting primitives — date/date-range semantics, string normalization and casing, validation result modelling, argument guards, sequence generation, serialization helpers, exception formatting, and logging contracts — for consumption by application and component layers above it in the SAIF stack (Stage 1 analysis, "Responsibility boundary").
Purpose¶
- Supplies fail-fast argument guards, date/date-range reasoning, text normalization, validation-result modelling, in-memory sequence generation, JSON/XML serialization helpers, exception formatting, and console/file logging contracts — all as static/extension methods with no persisted state beyond a sequence generator's current value or a validation result's collections (Stage 1 analysis, "Functional groupings").
- Consumed by SAIF MVC/web applications, console batch applications, and other component libraries that reference it as a foundation layer; it has zero outbound dependencies of its own, making it safely referenceable from any layer above it (Stage 1 analysis, "Responsibility boundary", "Design constraints").
Responsibilities¶
- Fail-fast argument and precondition guarding (
Enforce,GenericExtensions.IsNull/IfNullThrow). - Date and date-range modelling: validity, overlap, contiguity, EDI/Julian encoding (
DateRange,NullableDateRange,DateRangeExtensions,DateMaker,Julian). - Text normalization: casing, truncation, character-class filtering, Unicode-to-ASCII folding, truthy-string parsing (
StringExtensions,StringUtilities,BooleanExtensions). - Validation-result modelling and exception surfacing (
ValidationResult,ValidationFailure,SaifValidationException). - Contextual (view-routing) exception carrying for a consuming presentation layer (
ContextExceptionand its subclasses). - In-memory monotonic sequence generation (
Sequence,LongSequence). - JSON/XML serialization, stream-to-byte-array conversion, MD5 hashing, and binary header search (
Serializer,FileExtensions,ByteExtensions). - Console/file logging contract definitions and exception-chain formatting for logs (
IConsoleLogService,ILogWriter,ExceptionExtensions). - Reflection-based property discovery and assignment (
Reflector,ExpressionExtensions). - LINQ/collection gap-filling and dictionary merge/upsert (
IEnumerableExtensions,DictionaryExtensions).
Key components¶
Enforce: Central fail-fast argument/precondition guard used throughout the library.DateRange/DateRangeExtensions: Core date-interval type and its overlap/contiguity/membership algorithms.StringExtensions/StringUtilities: The library's text-normalization surface.ValidationResult/SaifValidationException: Validation-outcome modelling and exception surfacing.Serializer: JSON/XML round-tripping helpers.IConsoleLogService/ILogWriter: Logging contracts implemented by consumers, not this library.
Related documentation¶
Sources¶
Common/SAIF.Common/SAIF.Framework.Common.csprojCommon/SAIF.Common/SAIF.Framework.Common.nuspecSAIF.Framework.Common.slnCommon/SAIF.Common/Classes/Enforce.csCommon/SAIF.Common/Classes/DateRange.csCommon/SAIF.Common/Classes/NullableDateRange.csCommon/SAIF.Common/Extensions/DateRangeExtensions.csCommon/SAIF.Common/Classes/DateMaker.csCommon/SAIF.Common/Classes/Julian.csCommon/SAIF.Common/Extensions/StringExtensions.csCommon/SAIF.Common/Utility/StringUtilities.csCommon/SAIF.Common/Extensions/BooleanExtensions.csCommon/SAIF.Common/Classes/ValidationResult.csCommon/SAIF.Common/Classes/ValidationFailure.csCommon/SAIF.Common/Classes/SaifValidationException.csCommon/SAIF.Common/Classes/ContextException.csCommon/SAIF.Common/Classes/Sequence.csCommon/SAIF.Common/Classes/LongSequence.csCommon/SAIF.Common/Classes/Serializer.csCommon/SAIF.Common/Extensions/FileExtensions.csCommon/SAIF.Common/Extensions/ByteExtensions.csCommon/SAIF.Common/Interfaces/IConsoleLogService.csCommon/SAIF.Common/Interfaces/ILogWriter.csCommon/SAIF.Common/Extensions/ExceptionExtensions.csCommon/SAIF.Common/Classes/Reflector.csCommon/SAIF.Common/Extensions/ExpressionExtensions.csCommon/SAIF.Common/Extensions/IEnumerableExtensions.csCommon/SAIF.Common/Extensions/DictionaryExtensions.cs