BridgingIT.DevKit.Common.Abstractions 9.0.1-preview.0.18

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.1-preview.0.18
                    
NuGet\Install-Package BridgingIT.DevKit.Common.Abstractions -Version 9.0.1-preview.0.18
                    
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.1-preview.0.18" />
                    
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.1-preview.0.18" />
                    
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.1-preview.0.18
                    
#r "nuget: BridgingIT.DevKit.Common.Abstractions, 9.0.1-preview.0.18"
                    
#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.1-preview.0.18&prerelease
                    
Install BridgingIT.DevKit.Common.Abstractions as a Cake Addin
#tool nuget:?package=BridgingIT.DevKit.Common.Abstractions&version=9.0.1-preview.0.18&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.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.

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.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
9.0.1-preview.0.331 0 6/1/2025
9.0.1-preview.0.329 29 5/30/2025
9.0.1-preview.0.326 42 5/30/2025
9.0.1-preview.0.324 31 5/30/2025
9.0.1-preview.0.323 33 5/30/2025
9.0.1-preview.0.321 60 5/30/2025
9.0.1-preview.0.319 39 5/30/2025
9.0.1-preview.0.318 50 5/30/2025
9.0.1-preview.0.317 58 5/30/2025
9.0.1-preview.0.316 63 5/30/2025
9.0.1-preview.0.315 83 5/30/2025
9.0.1-preview.0.314 65 5/30/2025
9.0.1-preview.0.312 71 5/30/2025
9.0.1-preview.0.309 108 5/28/2025
9.0.1-preview.0.302 110 5/21/2025
9.0.1-preview.0.301 142 5/21/2025
9.0.1-preview.0.300 109 5/21/2025
9.0.1-preview.0.299 116 5/21/2025
9.0.1-preview.0.297 111 5/21/2025
9.0.1-preview.0.295 103 5/21/2025
9.0.1-preview.0.294 114 5/21/2025
9.0.1-preview.0.293 107 5/21/2025
9.0.1-preview.0.290 116 5/19/2025
9.0.1-preview.0.287 125 5/19/2025
9.0.1-preview.0.286 210 5/15/2025
9.0.1-preview.0.285 199 5/13/2025
9.0.1-preview.0.279 193 5/13/2025
9.0.1-preview.0.278 204 5/13/2025
9.0.1-preview.0.277 198 5/13/2025
9.0.1-preview.0.276 256 5/13/2025
9.0.1-preview.0.274 114 5/19/2025
9.0.1-preview.0.272 103 5/11/2025
9.0.1-preview.0.271 102 5/11/2025
9.0.1-preview.0.270 82 5/9/2025
9.0.1-preview.0.267 109 5/7/2025
9.0.1-preview.0.266 110 5/7/2025
9.0.1-preview.0.265 113 5/6/2025
9.0.1-preview.0.264 163 5/6/2025
9.0.1-preview.0.263 109 5/6/2025
9.0.1-preview.0.262 113 5/6/2025
9.0.1-preview.0.261 119 5/6/2025
9.0.1-preview.0.258 469 5/6/2025
9.0.1-preview.0.255 81 5/9/2025
9.0.1-preview.0.254 117 5/8/2025
9.0.1-preview.0.253 110 5/8/2025
9.0.1-preview.0.252 113 5/8/2025
9.0.1-preview.0.251 110 5/8/2025
9.0.1-preview.0.250 120 5/7/2025
9.0.1-preview.0.247 129 5/7/2025
9.0.1-preview.0.246 109 5/7/2025
9.0.1-preview.0.244 146 4/17/2025
9.0.1-preview.0.243 220 4/15/2025
9.0.1-preview.0.242 152 4/15/2025
9.0.1-preview.0.241 149 4/15/2025
9.0.1-preview.0.239 150 4/15/2025
9.0.1-preview.0.238 247 4/15/2025
9.0.1-preview.0.237 205 4/13/2025
9.0.1-preview.0.236 142 4/10/2025
9.0.1-preview.0.235 125 4/10/2025
9.0.1-preview.0.234 137 4/10/2025
9.0.1-preview.0.233 157 4/9/2025
9.0.1-preview.0.232 123 4/9/2025
9.0.1-preview.0.231 119 4/9/2025
9.0.1-preview.0.230 177 4/7/2025
9.0.1-preview.0.229 136 4/7/2025
9.0.1-preview.0.228 141 4/7/2025
9.0.1-preview.0.227 131 4/4/2025
9.0.1-preview.0.226 127 4/3/2025
9.0.1-preview.0.220 161 4/2/2025
9.0.1-preview.0.219 116 4/1/2025
9.0.1-preview.0.218 115 4/1/2025
9.0.1-preview.0.217 175 4/1/2025
9.0.1-preview.0.215 139 4/1/2025
9.0.1-preview.0.214 121 4/1/2025
9.0.1-preview.0.213 138 4/1/2025
9.0.1-preview.0.212 143 4/1/2025
9.0.1-preview.0.211 118 4/1/2025
9.0.1-preview.0.210 123 4/1/2025
9.0.1-preview.0.209 135 3/31/2025
9.0.1-preview.0.208 139 3/31/2025
9.0.1-preview.0.206 124 3/31/2025
9.0.1-preview.0.205 129 3/31/2025
9.0.1-preview.0.204 128 3/31/2025
9.0.1-preview.0.202 119 3/31/2025
9.0.1-preview.0.199 59 3/29/2025
9.0.1-preview.0.198 98 3/28/2025
9.0.1-preview.0.196 101 3/28/2025
9.0.1-preview.0.193 95 3/27/2025
9.0.1-preview.0.189 122 3/26/2025
9.0.1-preview.0.188 451 3/25/2025
9.0.1-preview.0.187 461 3/24/2025
9.0.1-preview.0.186 449 3/24/2025
9.0.1-preview.0.185 449 3/24/2025
9.0.1-preview.0.184 449 3/24/2025
9.0.1-preview.0.183 446 3/24/2025
9.0.1-preview.0.182 59 3/21/2025
9.0.1-preview.0.180 109 3/21/2025
9.0.1-preview.0.179 117 3/21/2025
9.0.1-preview.0.178 114 3/21/2025
9.0.1-preview.0.175 116 3/20/2025
9.0.1-preview.0.174 116 3/19/2025
9.0.1-preview.0.173 130 3/19/2025
9.0.1-preview.0.172 277 3/19/2025
9.0.1-preview.0.171 115 3/19/2025
9.0.1-preview.0.170 115 3/18/2025
9.0.1-preview.0.165 112 3/18/2025
9.0.1-preview.0.162 118 3/17/2025
9.0.1-preview.0.160 115 3/17/2025
9.0.1-preview.0.152 97 3/14/2025
9.0.1-preview.0.148 133 3/13/2025
9.0.1-preview.0.147 119 3/13/2025
9.0.1-preview.0.146 116 3/12/2025
9.0.1-preview.0.145 124 3/12/2025
9.0.1-preview.0.141 125 3/12/2025
9.0.1-preview.0.140 163 3/10/2025
9.0.1-preview.0.139 122 3/10/2025
9.0.1-preview.0.138 134 3/10/2025
9.0.1-preview.0.137 116 3/8/2025
9.0.1-preview.0.135 130 3/8/2025
9.0.1-preview.0.134 169 3/7/2025
9.0.1-preview.0.133 165 3/6/2025
9.0.1-preview.0.132 162 3/6/2025
9.0.1-preview.0.130 161 3/6/2025
9.0.1-preview.0.129 214 3/6/2025
9.0.1-preview.0.128 166 3/6/2025
9.0.1-preview.0.127 170 3/6/2025
9.0.1-preview.0.125 179 3/4/2025
9.0.1-preview.0.119 76 2/28/2025
9.0.1-preview.0.118 59 2/28/2025
9.0.1-preview.0.116 65 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 241 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 188 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 184 2/13/2025
9.0.1-preview.0.69 172 2/13/2025
9.0.1-preview.0.67 183 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 90 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 120 4/1/2025
3.0.5-preview.0.1 77 2/11/2025
3.0.4 483 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 56 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 58 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 385 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 95 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 80 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 735 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 75 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 79 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 295 5/8/2024
3.0.3-preview.0.3 99 5/6/2024
3.0.3-preview.0.1 82 4/25/2024
3.0.2 1,316 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