BridgingIT.DevKit.Common.Abstractions 9.0.2-preview.1

This is a prerelease version of BridgingIT.DevKit.Common.Abstractions.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package BridgingIT.DevKit.Common.Abstractions --version 9.0.2-preview.1
                    
NuGet\Install-Package BridgingIT.DevKit.Common.Abstractions -Version 9.0.2-preview.1
                    
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="BridgingIT.DevKit.Common.Abstractions" Version="9.0.2-preview.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="BridgingIT.DevKit.Common.Abstractions" Version="9.0.2-preview.1" />
                    
Directory.Packages.props
<PackageReference Include="BridgingIT.DevKit.Common.Abstractions" />
                    
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 BridgingIT.DevKit.Common.Abstractions --version 9.0.2-preview.1
                    
#r "nuget: BridgingIT.DevKit.Common.Abstractions, 9.0.2-preview.1"
                    
#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.
#addin nuget:?package=BridgingIT.DevKit.Common.Abstractions&version=9.0.2-preview.1&prerelease
                    
Install BridgingIT.DevKit.Common.Abstractions as a Cake Addin
#tool nuget:?package=BridgingIT.DevKit.Common.Abstractions&version=9.0.2-preview.1&prerelease
                    
Install BridgingIT.DevKit.Common.Abstractions as a Cake Tool

bITDevKit

Empowering developers with modular components for modern application development, centered around Domain-Driven Design principles.

Our goal is to empower developers by offering modular components that can be easily integrated into your projects. Whether you're working with repositories, commands, queries, or other components, the bITDevKit provides flexible solutions that can adapt to your specific needs.

This repository includes the complete source code for the bITDevKit, along with a variety of sample applications located in the ./examples folder within the solution. These samples serve as practical demonstrations of how to leverage the capabilities of the bITDevKit in real-world scenarios. All components are available as nuget packages.

For the latest updates and release notes, please refer to the RELEASES.

Join us in advancing the world of software development with the bITDevKit!


Result.cs Overview

The Result class encapsulates the outcome of an operation, promoting an expressive and error-tolerant way to handle success and failure states.

The Result class is a central component designed to encapsulate the outcome of an operation, providing a way to represent both successful and failed operations. This class promotes a more expressive and error-tolerant approach to handling operation results, encouraging the explicit declaration of success or failure states.

Returning a Result

To return a Result from a method, you typically define the method to return Result or Result<T>, where T is the type of the value returned in case of success. Here is an example method returning a Result:

public Result PerformOperation()
{
    // Your logic here
    
    if (success)
    {
        return Result.Success();
    }
    else
    {
        return Result.Failure(new Error("Operation Failed"));
    }
}

Handling a Result

When you receive a Result from a method, you can handle it by checking its success or failure state. Here's an example:

var result = PerformOperation();

if (result.IsSuccess)
{
    // Handle success
}
else
{
    // Handle failure
    var error = result.Error;
    Console.WriteLine(error.Message);
}

Using Typed Results

Sometimes, you may want to return a result with a value. This is where Result<T> comes in handy:

public Result<int> CalculateSum(int a, int b)
{
    if (a < 0 || b < 0)
    {
        return Result.Failure<int>(new Error("Inputs must be non-negative"));
    }

    return Result.Success(a + b);
}

Handling a Result<T> involves extracting the value if the operation was successful:

var result = CalculateSum(5, 10);

if (result.IsSuccess)
{
    int sum = result.Value;
    Console.WriteLine($"Sum: {sum}");
}
else
{
    Console.WriteLine(result.Error.Message);
}

Typed Errors

Typed errors provide a more specific and structured way to handle different error scenarios. For example, the EntityNotFoundResultError class can be used to represent an error where an entity is not found:

EntityNotFoundResultError.cs:
public class EntityNotFoundResultError : Error
{
    public EntityNotFoundResultError(string entityName, object key)
        : base($"Entity '{entityName}' with key '{key}' was not found.")
    {
    }
}

You can return this typed error as follows:

public Result GetEntity(int id)
{
    var entity = repository.FindById(id);

    if (entity == null)
    {
        return Result.Failure(new EntityNotFoundResultError("EntityName", id));
    }

    return Result.Success(entity);
}

When handling the result, you can check if the error is of a specific type:

var result = GetEntity(1);

if (result.IsSuccess)
{
    // Handle success
}
else if (result.Error is EntityNotFoundResultError)
{
    var error = (EntityNotFoundResultError)result.Error;
    Console.WriteLine(error.Message);
}
else
{
    // Handle other errors
}

Other available typed errors are:

By using typed errors, you can create more expressive and manageable error handling in your application.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (14)

Showing the top 5 NuGet packages that depend on BridgingIT.DevKit.Common.Abstractions:

Package Downloads
BridgingIT.DevKit.Common.Serialization

BridgingIT DevKit: Empowering developers with modular components for modern application development, centered around Domain-Driven Design principles. Our goal is to empower developers by offering modular components that can be easily integrated into your projects. Whether you're working with repositories, commands, queries, or other components, the bITDevKit provides flexible solutions that can adapt to your specific needs.

BridgingIT.DevKit.Common.Utilities

BridgingIT DevKit: Empowering developers with modular components for modern application development, centered around Domain-Driven Design principles. Our goal is to empower developers by offering modular components that can be easily integrated into your projects. Whether you're working with repositories, commands, queries, or other components, the bITDevKit provides flexible solutions that can adapt to your specific needs.

BridgingIT.DevKit.Domain

BridgingIT DevKit: Empowering developers with modular components for modern application development, centered around Domain-Driven Design principles. Our goal is to empower developers by offering modular components that can be easily integrated into your projects. Whether you're working with repositories, commands, queries, or other components, the bITDevKit provides flexible solutions that can adapt to your specific needs.

BridgingIT.DevKit.Application.Messaging

BridgingIT DevKit: Empowering developers with modular components for modern application development, centered around Domain-Driven Design principles. Our goal is to empower developers by offering modular components that can be easily integrated into your projects. Whether you're working with repositories, commands, queries, or other components, the bITDevKit provides flexible solutions that can adapt to your specific needs.

BridgingIT.DevKit.Application.Storage

BridgingIT DevKit: Empowering developers with modular components for modern application development, centered around Domain-Driven Design principles. Our goal is to empower developers by offering modular components that can be easily integrated into your projects. Whether you're working with repositories, commands, queries, or other components, the bITDevKit provides flexible solutions that can adapt to your specific needs.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
9.0.2-preview.33 3 6/11/2025
9.0.2-preview.32 8 6/11/2025
9.0.2-preview.31 7 6/11/2025
9.0.2-preview.28 6 6/11/2025
9.0.2-preview.25 7 6/11/2025
9.0.2-preview.24 10 6/11/2025
9.0.2-preview.23 12 6/11/2025
9.0.2-preview.22 22 6/11/2025
9.0.2-preview.21 59 6/10/2025
9.0.2-preview.20 36 6/10/2025
9.0.2-preview.19 30 6/10/2025
9.0.2-preview.18 47 6/9/2025
9.0.2-preview.16 32 6/9/2025
9.0.2-preview.14 35 6/7/2025
9.0.2-preview.13 34 6/6/2025
9.0.2-preview.12 34 6/6/2025
9.0.2-preview.5 53 6/6/2025
9.0.2-preview.3 120 6/4/2025
9.0.2-preview.2 114 6/4/2025
9.0.2-preview.1 105 6/4/2025
9.0.1-preview.0.335 137 6/2/2025
9.0.1-preview.0.333 115 6/2/2025
9.0.1-preview.0.332 109 6/1/2025
9.0.1-preview.0.331 108 6/1/2025
9.0.1-preview.0.329 33 5/30/2025
9.0.1-preview.0.326 45 5/30/2025
9.0.1-preview.0.324 34 5/30/2025
9.0.1-preview.0.323 39 5/30/2025
9.0.1-preview.0.321 63 5/30/2025
9.0.1-preview.0.319 45 5/30/2025
9.0.1-preview.0.318 53 5/30/2025
9.0.1-preview.0.317 61 5/30/2025
9.0.1-preview.0.316 66 5/30/2025
9.0.1-preview.0.315 86 5/30/2025
9.0.1-preview.0.314 68 5/30/2025
9.0.1-preview.0.312 74 5/30/2025
9.0.1-preview.0.309 111 5/28/2025
9.0.1-preview.0.302 112 5/21/2025
9.0.1-preview.0.301 147 5/21/2025
9.0.1-preview.0.300 112 5/21/2025
9.0.1-preview.0.299 118 5/21/2025
9.0.1-preview.0.297 165 5/21/2025
9.0.1-preview.0.296 120 6/4/2025
9.0.1-preview.0.295 107 5/21/2025
9.0.1-preview.0.294 116 5/21/2025
9.0.1-preview.0.293 110 5/21/2025
9.0.1-preview.0.290 118 5/19/2025
9.0.1-preview.0.287 127 5/19/2025
9.0.1-preview.0.286 211 5/15/2025
9.0.1-preview.0.285 200 5/13/2025
9.0.1-preview.0.279 194 5/13/2025
9.0.1-preview.0.278 205 5/13/2025
9.0.1-preview.0.277 199 5/13/2025
9.0.1-preview.0.276 257 5/13/2025
9.0.1-preview.0.274 116 5/19/2025
9.0.1-preview.0.272 104 5/11/2025
9.0.1-preview.0.271 104 5/11/2025
9.0.1-preview.0.270 83 5/9/2025
9.0.1-preview.0.267 110 5/7/2025
9.0.1-preview.0.266 111 5/7/2025
9.0.1-preview.0.265 114 5/6/2025
9.0.1-preview.0.264 164 5/6/2025
9.0.1-preview.0.263 110 5/6/2025
9.0.1-preview.0.262 114 5/6/2025
9.0.1-preview.0.261 120 5/6/2025
9.0.1-preview.0.258 470 5/6/2025
9.0.1-preview.0.255 82 5/9/2025
9.0.1-preview.0.254 118 5/8/2025
9.0.1-preview.0.253 111 5/8/2025
9.0.1-preview.0.252 114 5/8/2025
9.0.1-preview.0.251 111 5/8/2025
9.0.1-preview.0.250 122 5/7/2025
9.0.1-preview.0.247 130 5/7/2025
9.0.1-preview.0.246 110 5/7/2025
9.0.1-preview.0.244 147 4/17/2025
9.0.1-preview.0.243 221 4/15/2025
9.0.1-preview.0.242 153 4/15/2025
9.0.1-preview.0.241 150 4/15/2025
9.0.1-preview.0.239 151 4/15/2025
9.0.1-preview.0.238 248 4/15/2025
9.0.1-preview.0.237 206 4/13/2025
9.0.1-preview.0.236 143 4/10/2025
9.0.1-preview.0.235 126 4/10/2025
9.0.1-preview.0.234 138 4/10/2025
9.0.1-preview.0.233 158 4/9/2025
9.0.1-preview.0.232 124 4/9/2025
9.0.1-preview.0.231 120 4/9/2025
9.0.1-preview.0.230 178 4/7/2025
9.0.1-preview.0.229 137 4/7/2025
9.0.1-preview.0.228 142 4/7/2025
9.0.1-preview.0.227 132 4/4/2025
9.0.1-preview.0.226 128 4/3/2025
9.0.1-preview.0.220 162 4/2/2025
9.0.1-preview.0.219 117 4/1/2025
9.0.1-preview.0.218 116 4/1/2025
9.0.1-preview.0.217 176 4/1/2025
9.0.1-preview.0.215 140 4/1/2025
9.0.1-preview.0.214 122 4/1/2025
9.0.1-preview.0.213 139 4/1/2025
9.0.1-preview.0.212 144 4/1/2025
9.0.1-preview.0.211 119 4/1/2025
9.0.1-preview.0.210 124 4/1/2025
9.0.1-preview.0.209 136 3/31/2025
9.0.1-preview.0.208 140 3/31/2025
9.0.1-preview.0.206 125 3/31/2025
9.0.1-preview.0.205 130 3/31/2025
9.0.1-preview.0.204 129 3/31/2025
9.0.1-preview.0.202 120 3/31/2025
9.0.1-preview.0.199 60 3/29/2025
9.0.1-preview.0.198 99 3/28/2025
9.0.1-preview.0.196 102 3/28/2025
9.0.1-preview.0.193 96 3/27/2025
9.0.1-preview.0.189 123 3/26/2025
9.0.1-preview.0.188 452 3/25/2025
9.0.1-preview.0.187 462 3/24/2025
9.0.1-preview.0.186 450 3/24/2025
9.0.1-preview.0.185 450 3/24/2025
9.0.1-preview.0.184 450 3/24/2025
9.0.1-preview.0.183 447 3/24/2025
9.0.1-preview.0.182 60 3/21/2025
9.0.1-preview.0.180 110 3/21/2025
9.0.1-preview.0.179 118 3/21/2025
9.0.1-preview.0.178 115 3/21/2025
9.0.1-preview.0.175 117 3/20/2025
9.0.1-preview.0.174 117 3/19/2025
9.0.1-preview.0.173 131 3/19/2025
9.0.1-preview.0.172 278 3/19/2025
9.0.1-preview.0.171 116 3/19/2025
9.0.1-preview.0.170 116 3/18/2025
9.0.1-preview.0.165 113 3/18/2025
9.0.1-preview.0.162 119 3/17/2025
9.0.1-preview.0.160 116 3/17/2025
9.0.1-preview.0.152 98 3/14/2025
9.0.1-preview.0.148 136 3/13/2025
9.0.1-preview.0.147 120 3/13/2025
9.0.1-preview.0.146 117 3/12/2025
9.0.1-preview.0.145 125 3/12/2025
9.0.1-preview.0.141 126 3/12/2025
9.0.1-preview.0.140 165 3/10/2025
9.0.1-preview.0.139 123 3/10/2025
9.0.1-preview.0.138 135 3/10/2025
9.0.1-preview.0.137 117 3/8/2025
9.0.1-preview.0.135 131 3/8/2025
9.0.1-preview.0.134 170 3/7/2025
9.0.1-preview.0.133 166 3/6/2025
9.0.1-preview.0.132 163 3/6/2025
9.0.1-preview.0.130 162 3/6/2025
9.0.1-preview.0.129 215 3/6/2025
9.0.1-preview.0.128 167 3/6/2025
9.0.1-preview.0.127 172 3/6/2025
9.0.1-preview.0.125 181 3/4/2025
9.0.1-preview.0.119 77 2/28/2025
9.0.1-preview.0.118 60 2/28/2025
9.0.1-preview.0.116 66 2/28/2025
9.0.1-preview.0.112 55 2/27/2025
9.0.1-preview.0.111 60 2/27/2025
9.0.1-preview.0.110 112 2/26/2025
9.0.1-preview.0.107 63 2/26/2025
9.0.1-preview.0.106 64 2/26/2025
9.0.1-preview.0.105 65 2/26/2025
9.0.1-preview.0.104 70 2/26/2025
9.0.1-preview.0.103 88 2/26/2025
9.0.1-preview.0.102 84 2/26/2025
9.0.1-preview.0.100 55 2/26/2025
9.0.1-preview.0.99 96 2/25/2025
9.0.1-preview.0.97 66 2/25/2025
9.0.1-preview.0.96 57 2/25/2025
9.0.1-preview.0.94 61 2/24/2025
9.0.1-preview.0.93 86 2/24/2025
9.0.1-preview.0.92 61 2/21/2025
9.0.1-preview.0.91 54 2/21/2025
9.0.1-preview.0.88 55 2/19/2025
9.0.1-preview.0.87 242 2/18/2025
9.0.1-preview.0.85 261 2/18/2025
9.0.1-preview.0.84 201 2/17/2025
9.0.1-preview.0.82 160 2/17/2025
9.0.1-preview.0.79 170 2/14/2025
9.0.1-preview.0.78 189 2/14/2025
9.0.1-preview.0.77 160 2/14/2025
9.0.1-preview.0.76 203 2/14/2025
9.0.1-preview.0.73 194 2/14/2025
9.0.1-preview.0.71 134 2/14/2025
9.0.1-preview.0.70 185 2/13/2025
9.0.1-preview.0.69 174 2/13/2025
9.0.1-preview.0.67 184 2/13/2025
9.0.1-preview.0.62 165 2/11/2025
9.0.1-preview.0.58 76 2/7/2025
9.0.1-preview.0.56 63 2/7/2025
9.0.1-preview.0.55 53 2/6/2025
9.0.1-preview.0.54 57 2/6/2025
9.0.1-preview.0.53 52 2/6/2025
9.0.1-preview.0.52 55 2/6/2025
9.0.1-preview.0.50 70 2/6/2025
9.0.1-preview.0.49 115 2/6/2025
9.0.1-preview.0.47 56 2/6/2025
9.0.1-preview.0.45 58 2/6/2025
9.0.1-preview.0.43 63 2/5/2025
9.0.1-preview.0.42 59 2/5/2025
9.0.1-preview.0.41 62 2/5/2025
9.0.1-preview.0.35 61 2/4/2025
9.0.1-preview.0.20 58 1/30/2025
9.0.1-preview.0.19 54 1/30/2025
9.0.1-preview.0.18 56 1/30/2025
9.0.1-preview.0.14 57 1/30/2025
9.0.1-preview.0.13 63 1/30/2025
9.0.1-preview.0.11 51 1/29/2025
9.0.1-preview.0.10 52 1/29/2025
9.0.1-preview.0.9 56 1/27/2025
9.0.1-preview.0.2 111 1/27/2025
3.0.5-preview.0.2 121 4/1/2025
3.0.5-preview.0.1 77 2/11/2025
3.0.4 487 1/25/2025
3.0.4-preview.0.38 66 1/25/2025
3.0.4-preview.0.37 101 12/6/2024
3.0.4-preview.0.36 192 12/5/2024
3.0.4-preview.0.34 66 12/5/2024
3.0.4-preview.0.32 67 12/4/2024
3.0.4-preview.0.31 85 11/25/2024
3.0.4-preview.0.30 64 11/25/2024
3.0.4-preview.0.29 55 11/21/2024
3.0.4-preview.0.28 116 11/19/2024
3.0.4-preview.0.27 56 11/19/2024
3.0.4-preview.0.23 59 11/19/2024
3.0.4-preview.0.21 52 11/19/2024
3.0.4-preview.0.20 55 11/18/2024
3.0.4-preview.0.19 67 11/18/2024
3.0.4-preview.0.18 52 11/18/2024
3.0.4-preview.0.17 55 11/18/2024
3.0.4-preview.0.16 57 11/15/2024
3.0.4-preview.0.15 55 11/15/2024
3.0.4-preview.0.14 72 11/2/2024
3.0.4-preview.0.13 65 10/29/2024
3.0.4-preview.0.12 61 10/29/2024
3.0.4-preview.0.8 66 10/29/2024
3.0.4-preview.0.7 64 10/29/2024
3.0.4-preview.0.6 56 10/24/2024
3.0.4-preview.0.5 66 10/23/2024
3.0.4-preview.0.4 55 10/23/2024
3.0.4-preview.0.3 59 10/23/2024
3.0.4-preview.0.2 63 10/23/2024
3.0.4-preview.0.1 200 10/16/2024
3.0.3 386 10/11/2024
3.0.3-preview.0.56 73 10/10/2024
3.0.3-preview.0.55 68 10/10/2024
3.0.3-preview.0.54 70 10/10/2024
3.0.3-preview.0.50 66 10/10/2024
3.0.3-preview.0.49 82 10/9/2024
3.0.3-preview.0.44 89 10/8/2024
3.0.3-preview.0.43 63 10/8/2024
3.0.3-preview.0.42 64 10/7/2024
3.0.3-preview.0.41 67 10/7/2024
3.0.3-preview.0.40 96 10/1/2024
3.0.3-preview.0.39 69 10/1/2024
3.0.3-preview.0.38 65 10/1/2024
3.0.3-preview.0.36 69 9/30/2024
3.0.3-preview.0.35 81 9/26/2024
3.0.3-preview.0.34 76 9/26/2024
3.0.3-preview.0.33 63 9/26/2024
3.0.3-preview.0.32 93 9/24/2024
3.0.3-preview.0.31 742 9/10/2024
3.0.3-preview.0.30 62 9/9/2024
3.0.3-preview.0.29 61 9/9/2024
3.0.3-preview.0.28 51 9/8/2024
3.0.3-preview.0.27 72 9/5/2024
3.0.3-preview.0.26 72 9/3/2024
3.0.3-preview.0.25 61 9/3/2024
3.0.3-preview.0.24 72 9/3/2024
3.0.3-preview.0.23 85 8/21/2024
3.0.3-preview.0.22 52 7/29/2024
3.0.3-preview.0.21 72 7/25/2024
3.0.3-preview.0.18 76 7/12/2024
3.0.3-preview.0.17 65 7/12/2024
3.0.3-preview.0.16 56 7/12/2024
3.0.3-preview.0.15 63 7/5/2024
3.0.3-preview.0.14 126 6/24/2024
3.0.3-preview.0.13 89 6/23/2024
3.0.3-preview.0.12 80 6/21/2024
3.0.3-preview.0.11 78 6/20/2024
3.0.3-preview.0.9 360 5/27/2024
3.0.3-preview.0.8 74 5/27/2024
3.0.3-preview.0.7 100 5/17/2024
3.0.3-preview.0.6 76 5/14/2024
3.0.3-preview.0.5 299 5/8/2024
3.0.3-preview.0.3 99 5/6/2024
3.0.3-preview.0.1 88 4/25/2024
3.0.2 1,323 4/25/2024
3.0.2-preview.0.4 95 4/25/2024
3.0.2-preview.0.3 148 4/25/2024
3.0.2-preview.0.2 99 4/25/2024
3.0.2-preview.0.1 76 4/25/2024
3.0.1 436 4/25/2024
3.0.1-preview.0.10 80 4/24/2024
3.0.1-preview.0.9 186 4/19/2024
3.0.1-preview.0.8 69 4/24/2024
3.0.1-preview.0.7 135 4/24/2024

## Release 3.0.1 [25.04.24]

- [N] Initial release

-----

- [N] New
- [M] Modified
- [B] Breaking