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

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.31
                    
NuGet\Install-Package BridgingIT.DevKit.Common.Abstractions -Version 9.0.2-preview.31
                    
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.31" />
                    
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.31" />
                    
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.31
                    
#r "nuget: BridgingIT.DevKit.Common.Abstractions, 9.0.2-preview.31"
                    
#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.31&prerelease
                    
Install BridgingIT.DevKit.Common.Abstractions as a Cake Addin
#tool nuget:?package=BridgingIT.DevKit.Common.Abstractions&version=9.0.2-preview.31&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.38 0 6/20/2025
9.0.2-preview.37 0 6/20/2025
9.0.2-preview.36 66 6/17/2025
9.0.2-preview.35 107 6/14/2025
9.0.2-preview.34 251 6/12/2025
9.0.2-preview.33 253 6/11/2025
9.0.2-preview.32 267 6/11/2025
9.0.2-preview.31 253 6/11/2025
9.0.2-preview.28 256 6/11/2025
9.0.2-preview.25 250 6/11/2025
9.0.2-preview.24 256 6/11/2025
9.0.2-preview.23 253 6/11/2025
9.0.2-preview.22 251 6/11/2025
9.0.2-preview.21 278 6/10/2025
9.0.2-preview.20 258 6/10/2025
9.0.2-preview.19 251 6/10/2025
9.0.2-preview.18 251 6/9/2025
9.0.2-preview.16 208 6/9/2025
9.0.2-preview.14 41 6/7/2025
9.0.2-preview.13 40 6/6/2025
9.0.2-preview.12 40 6/6/2025
9.0.2-preview.5 59 6/6/2025
9.0.2-preview.3 124 6/4/2025
9.0.2-preview.2 119 6/4/2025
9.0.2-preview.1 109 6/4/2025
9.0.1-preview.0.335 169 6/2/2025
9.0.1-preview.0.333 121 6/2/2025
9.0.1-preview.0.332 113 6/1/2025
9.0.1-preview.0.331 113 6/1/2025
9.0.1-preview.0.329 37 5/30/2025
9.0.1-preview.0.326 49 5/30/2025
9.0.1-preview.0.324 38 5/30/2025
9.0.1-preview.0.323 43 5/30/2025
9.0.1-preview.0.321 66 5/30/2025
9.0.1-preview.0.319 48 5/30/2025
9.0.1-preview.0.318 57 5/30/2025
9.0.1-preview.0.317 64 5/30/2025
9.0.1-preview.0.316 69 5/30/2025
9.0.1-preview.0.315 89 5/30/2025
9.0.1-preview.0.314 72 5/30/2025
9.0.1-preview.0.312 77 5/30/2025
9.0.1-preview.0.309 113 5/28/2025
9.0.1-preview.0.302 114 5/21/2025
9.0.1-preview.0.301 149 5/21/2025
9.0.1-preview.0.300 114 5/21/2025
9.0.1-preview.0.299 120 5/21/2025
9.0.1-preview.0.297 167 5/21/2025
9.0.1-preview.0.296 124 6/4/2025
9.0.1-preview.0.295 108 5/21/2025
9.0.1-preview.0.294 117 5/21/2025
9.0.1-preview.0.293 111 5/21/2025
9.0.1-preview.0.290 119 5/19/2025
9.0.1-preview.0.287 128 5/19/2025
9.0.1-preview.0.286 212 5/15/2025
9.0.1-preview.0.285 202 5/13/2025
9.0.1-preview.0.279 195 5/13/2025
9.0.1-preview.0.278 206 5/13/2025
9.0.1-preview.0.277 202 5/13/2025
9.0.1-preview.0.276 258 5/13/2025
9.0.1-preview.0.274 118 5/19/2025
9.0.1-preview.0.272 105 5/11/2025
9.0.1-preview.0.271 105 5/11/2025
9.0.1-preview.0.270 85 5/9/2025
9.0.1-preview.0.267 111 5/7/2025
9.0.1-preview.0.266 112 5/7/2025
9.0.1-preview.0.265 115 5/6/2025
9.0.1-preview.0.264 165 5/6/2025
9.0.1-preview.0.263 111 5/6/2025
9.0.1-preview.0.262 116 5/6/2025
9.0.1-preview.0.261 121 5/6/2025
9.0.1-preview.0.258 471 5/6/2025
9.0.1-preview.0.255 83 5/9/2025
9.0.1-preview.0.254 119 5/8/2025
9.0.1-preview.0.253 113 5/8/2025
9.0.1-preview.0.252 115 5/8/2025
9.0.1-preview.0.251 112 5/8/2025
9.0.1-preview.0.250 123 5/7/2025
9.0.1-preview.0.247 131 5/7/2025
9.0.1-preview.0.246 111 5/7/2025
9.0.1-preview.0.244 148 4/17/2025
9.0.1-preview.0.243 222 4/15/2025
9.0.1-preview.0.242 155 4/15/2025
9.0.1-preview.0.241 151 4/15/2025
9.0.1-preview.0.239 152 4/15/2025
9.0.1-preview.0.238 249 4/15/2025
9.0.1-preview.0.237 207 4/13/2025
9.0.1-preview.0.236 144 4/10/2025
9.0.1-preview.0.235 128 4/10/2025
9.0.1-preview.0.234 140 4/10/2025
9.0.1-preview.0.233 160 4/9/2025
9.0.1-preview.0.232 126 4/9/2025
9.0.1-preview.0.231 121 4/9/2025
9.0.1-preview.0.230 179 4/7/2025
9.0.1-preview.0.229 138 4/7/2025
9.0.1-preview.0.228 143 4/7/2025
9.0.1-preview.0.227 133 4/4/2025
9.0.1-preview.0.226 129 4/3/2025
9.0.1-preview.0.220 163 4/2/2025
9.0.1-preview.0.219 118 4/1/2025
9.0.1-preview.0.218 117 4/1/2025
9.0.1-preview.0.217 178 4/1/2025
9.0.1-preview.0.215 141 4/1/2025
9.0.1-preview.0.214 123 4/1/2025
9.0.1-preview.0.213 140 4/1/2025
9.0.1-preview.0.212 146 4/1/2025
9.0.1-preview.0.211 121 4/1/2025
9.0.1-preview.0.210 125 4/1/2025
9.0.1-preview.0.209 137 3/31/2025
9.0.1-preview.0.208 141 3/31/2025
9.0.1-preview.0.206 126 3/31/2025
9.0.1-preview.0.205 131 3/31/2025
9.0.1-preview.0.204 130 3/31/2025
9.0.1-preview.0.202 122 3/31/2025
9.0.1-preview.0.199 61 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 451 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 133 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 121 3/17/2025
9.0.1-preview.0.160 117 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 118 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 136 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 168 3/6/2025
9.0.1-preview.0.132 164 3/6/2025
9.0.1-preview.0.130 163 3/6/2025
9.0.1-preview.0.129 216 3/6/2025
9.0.1-preview.0.128 168 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 77 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 89 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 97 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 88 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 56 2/19/2025
9.0.1-preview.0.87 242 2/18/2025
9.0.1-preview.0.85 262 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 135 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 166 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 58 2/6/2025
9.0.1-preview.0.53 53 2/6/2025
9.0.1-preview.0.52 56 2/6/2025
9.0.1-preview.0.50 71 2/6/2025
9.0.1-preview.0.49 116 2/6/2025
9.0.1-preview.0.47 57 2/6/2025
9.0.1-preview.0.45 59 2/6/2025
9.0.1-preview.0.43 64 2/5/2025
9.0.1-preview.0.42 61 2/5/2025
9.0.1-preview.0.41 64 2/5/2025
9.0.1-preview.0.35 62 2/4/2025
9.0.1-preview.0.20 59 1/30/2025
9.0.1-preview.0.19 55 1/30/2025
9.0.1-preview.0.18 57 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 123 4/1/2025
3.0.5-preview.0.1 77 2/11/2025
3.0.4 489 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 193 12/5/2024
3.0.4-preview.0.34 66 12/5/2024
3.0.4-preview.0.32 68 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 56 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 59 11/15/2024
3.0.4-preview.0.15 55 11/15/2024
3.0.4-preview.0.14 73 11/2/2024
3.0.4-preview.0.13 66 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 67 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 201 10/16/2024
3.0.3 388 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 71 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 70 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 64 9/26/2024
3.0.3-preview.0.32 93 9/24/2024
3.0.3-preview.0.31 744 9/10/2024
3.0.3-preview.0.30 63 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 73 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 53 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,324 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 437 4/25/2024
3.0.1-preview.0.10 80 4/24/2024
3.0.1-preview.0.9 187 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