FractalDataWorks 0.1.6-alpha-gb9d189bbcb

This is a prerelease version of FractalDataWorks.
dotnet add package FractalDataWorks --version 0.1.6-alpha-gb9d189bbcb
                    
NuGet\Install-Package FractalDataWorks -Version 0.1.6-alpha-gb9d189bbcb
                    
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="FractalDataWorks" Version="0.1.6-alpha-gb9d189bbcb" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FractalDataWorks" Version="0.1.6-alpha-gb9d189bbcb" />
                    
Directory.Packages.props
<PackageReference Include="FractalDataWorks" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add FractalDataWorks --version 0.1.6-alpha-gb9d189bbcb
                    
#r "nuget: FractalDataWorks, 0.1.6-alpha-gb9d189bbcb"
                    
#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.
#:package FractalDataWorks@0.1.6-alpha-gb9d189bbcb
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=FractalDataWorks&version=0.1.6-alpha-gb9d189bbcb&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=FractalDataWorks&version=0.1.6-alpha-gb9d189bbcb&prerelease
                    
Install as a Cake Tool

FractalDataWorks

Part of the FractalDataWorks toolkit.

Build Status

Master Build Develop Build

Release Status

GitHub release (latest by date) GitHub release (latest by date including pre-releases)

Package Status

Nuget GitHub Packages

License

License

Core interface definitions for the FractalDataWorks platform, providing foundational contracts for enhanced functionality.

Overview

FractalDataWorks is a Layer 0.5 package containing pure interface definitions that serve as the foundation for the FractalDataWorks platform. This package includes interfaces like IEnhancedEnumOption for advanced enumeration patterns and IGenericResult for functional error handling.

Features

  • IGenericResult<T>: Result/Either monad pattern for functional error handling
  • IEnhancedEnumOption: Interface for enhanced enumeration types with ID and name properties
  • IEnhancedEnumOption<T>: Generic interface supporting self-referencing enum patterns
  • Fractal: Unit type for operations without meaningful return values
  • Pure interfaces with no implementation dependencies
  • netstandard2.0 compatible for broad framework support

Getting Started

Prerequisites

  • .NET Standard 2.0 compatible runtime
  • For development: .NET 10.0 SDK or later

Installation

From NuGet
dotnet add package FractalDataWorks
From GitHub Packages
# Add GitHub Packages source (if not already added)
dotnet nuget add source --username YOUR_USERNAME --password YOUR_TOKEN --store-password-in-clear-text --name github "https://nuget.pkg.github.com/CyberdineDevelopment/index.json"

# Install the package
dotnet add package FractalDataWorks --source "github"

Building from Source

# Clone the repository
git clone https://github.com/CyberdineDevelopment/FractalDataWorks.git

# Navigate to the project directory
cd FractalDataWorks

# Restore dependencies
dotnet restore

# Build the project
dotnet build

Running Tests

# Run all tests
dotnet test

# Run with coverage
dotnet test --collect:"XPlat Code Coverage"

Usage

using FractalDataWorks;

public class OrderStatus : IEnhancedEnumOption<OrderStatus>
{
    public int Id { get; }
    public string Name { get; }
    
    private OrderStatus(int id, string name)
    {
        Id = id;
        Name = name;
    }
    
    public static OrderStatus Pending = new(1, "Pending");
    public static OrderStatus Processing = new(2, "Processing");
    public static OrderStatus Complete = new(3, "Complete");
    
    public OrderStatus Empty() => new OrderStatus(0, "None");
}

Project Structure

├── src/                    # Source code
│   └── FractalDataWorks/   # Core interfaces
├── tests/                  # Unit and integration tests
├── docs/                   # Documentation
├── samples/                # Sample projects (future)
├── azure-pipelines.yml     # CI/CD pipeline configuration
├── Directory.Build.props   # Common build properties
└── README.md              # This file

Package Structure

This package contains only interface definitions:

  • No implementation code
  • No external dependencies
  • Minimal runtime footprint
  • FractalDataWorks.EnhancedEnums: Source generator for implementing enhanced enumerations
  • FractalDataWorks.SmartSwitches: Advanced pattern matching capabilities (coming soon)

Versioning

This project uses Nerdbank.GitVersioning for automatic versioning based on git history.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Acknowledgments

  • Part of the FractalDataWorks platform architecture
  • Layer 0.5 pure interface package
  • Follows semantic versioning
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  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.  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.  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.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on FractalDataWorks:

Package Downloads
FractalDataWorks.Messages

Message management system with Enhanced Enums pattern support

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.6-alpha-gb9d189bbcb 94 7/29/2025
0.1.5-alpha-g0162340032 95 7/29/2025
0.1.4-alpha-ga55613c307 97 7/28/2025
0.1.3-alpha-g1695442435 307 7/18/2025
0.1.2-alpha-gca1c536bfd 154 7/14/2025