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

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.300
                    
NuGet\Install-Package BridgingIT.DevKit.Common.Abstractions -Version 9.0.1-preview.0.300
                    
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.300" />
                    
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.300" />
                    
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.300
                    
#r "nuget: BridgingIT.DevKit.Common.Abstractions, 9.0.1-preview.0.300"
                    
#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.300&prerelease
                    
Install BridgingIT.DevKit.Common.Abstractions as a Cake Addin
#tool nuget:?package=BridgingIT.DevKit.Common.Abstractions&version=9.0.1-preview.0.300&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.1-preview.0.302 106 5/21/2025
9.0.1-preview.0.301 133 5/21/2025
9.0.1-preview.0.300 106 5/21/2025
9.0.1-preview.0.299 113 5/21/2025
9.0.1-preview.0.297 108 5/21/2025
9.0.1-preview.0.295 100 5/21/2025
9.0.1-preview.0.294 111 5/21/2025
9.0.1-preview.0.293 104 5/21/2025
9.0.1-preview.0.290 111 5/19/2025
9.0.1-preview.0.287 121 5/19/2025
9.0.1-preview.0.286 207 5/15/2025
9.0.1-preview.0.285 197 5/13/2025
9.0.1-preview.0.279 190 5/13/2025
9.0.1-preview.0.278 202 5/13/2025
9.0.1-preview.0.277 196 5/13/2025
9.0.1-preview.0.276 254 5/13/2025
9.0.1-preview.0.274 110 5/19/2025
9.0.1-preview.0.272 100 5/11/2025
9.0.1-preview.0.271 100 5/11/2025
9.0.1-preview.0.270 80 5/9/2025
9.0.1-preview.0.267 107 5/7/2025
9.0.1-preview.0.266 108 5/7/2025
9.0.1-preview.0.265 112 5/6/2025
9.0.1-preview.0.264 161 5/6/2025
9.0.1-preview.0.263 107 5/6/2025
9.0.1-preview.0.262 111 5/6/2025
9.0.1-preview.0.261 117 5/6/2025
9.0.1-preview.0.258 467 5/6/2025
9.0.1-preview.0.255 80 5/9/2025
9.0.1-preview.0.254 115 5/8/2025
9.0.1-preview.0.253 108 5/8/2025
9.0.1-preview.0.252 112 5/8/2025
9.0.1-preview.0.251 109 5/8/2025
9.0.1-preview.0.250 118 5/7/2025
9.0.1-preview.0.247 127 5/7/2025
9.0.1-preview.0.246 107 5/7/2025
9.0.1-preview.0.244 144 4/17/2025
9.0.1-preview.0.243 218 4/15/2025
9.0.1-preview.0.242 150 4/15/2025
9.0.1-preview.0.241 147 4/15/2025
9.0.1-preview.0.239 148 4/15/2025
9.0.1-preview.0.238 245 4/15/2025
9.0.1-preview.0.237 203 4/13/2025
9.0.1-preview.0.236 140 4/10/2025
9.0.1-preview.0.235 123 4/10/2025
9.0.1-preview.0.234 135 4/10/2025
9.0.1-preview.0.233 156 4/9/2025
9.0.1-preview.0.232 122 4/9/2025
9.0.1-preview.0.231 117 4/9/2025
9.0.1-preview.0.230 175 4/7/2025
9.0.1-preview.0.229 134 4/7/2025
9.0.1-preview.0.228 139 4/7/2025
9.0.1-preview.0.227 130 4/4/2025
9.0.1-preview.0.226 125 4/3/2025
9.0.1-preview.0.220 159 4/2/2025
9.0.1-preview.0.219 114 4/1/2025
9.0.1-preview.0.218 113 4/1/2025
9.0.1-preview.0.217 173 4/1/2025
9.0.1-preview.0.215 137 4/1/2025
9.0.1-preview.0.214 119 4/1/2025
9.0.1-preview.0.213 136 4/1/2025
9.0.1-preview.0.212 141 4/1/2025
9.0.1-preview.0.211 116 4/1/2025
9.0.1-preview.0.210 121 4/1/2025
9.0.1-preview.0.209 133 3/31/2025
9.0.1-preview.0.208 137 3/31/2025
9.0.1-preview.0.206 122 3/31/2025
9.0.1-preview.0.205 127 3/31/2025
9.0.1-preview.0.204 126 3/31/2025
9.0.1-preview.0.202 117 3/31/2025
9.0.1-preview.0.199 57 3/29/2025
9.0.1-preview.0.198 96 3/28/2025
9.0.1-preview.0.196 99 3/28/2025
9.0.1-preview.0.193 93 3/27/2025
9.0.1-preview.0.189 120 3/26/2025
9.0.1-preview.0.188 449 3/25/2025
9.0.1-preview.0.187 459 3/24/2025
9.0.1-preview.0.186 447 3/24/2025
9.0.1-preview.0.185 447 3/24/2025
9.0.1-preview.0.184 447 3/24/2025
9.0.1-preview.0.183 444 3/24/2025
9.0.1-preview.0.182 57 3/21/2025
9.0.1-preview.0.180 107 3/21/2025
9.0.1-preview.0.179 115 3/21/2025
9.0.1-preview.0.178 112 3/21/2025
9.0.1-preview.0.175 114 3/20/2025
9.0.1-preview.0.174 114 3/19/2025
9.0.1-preview.0.173 128 3/19/2025
9.0.1-preview.0.172 275 3/19/2025
9.0.1-preview.0.171 113 3/19/2025
9.0.1-preview.0.170 113 3/18/2025
9.0.1-preview.0.165 110 3/18/2025
9.0.1-preview.0.162 116 3/17/2025
9.0.1-preview.0.160 114 3/17/2025
9.0.1-preview.0.152 95 3/14/2025
9.0.1-preview.0.148 131 3/13/2025
9.0.1-preview.0.147 117 3/13/2025
9.0.1-preview.0.146 114 3/12/2025
9.0.1-preview.0.145 122 3/12/2025
9.0.1-preview.0.141 123 3/12/2025
9.0.1-preview.0.140 161 3/10/2025
9.0.1-preview.0.139 120 3/10/2025
9.0.1-preview.0.138 132 3/10/2025
9.0.1-preview.0.137 114 3/8/2025
9.0.1-preview.0.135 128 3/8/2025
9.0.1-preview.0.134 167 3/7/2025
9.0.1-preview.0.133 163 3/6/2025
9.0.1-preview.0.132 160 3/6/2025
9.0.1-preview.0.130 159 3/6/2025
9.0.1-preview.0.129 212 3/6/2025
9.0.1-preview.0.128 164 3/6/2025
9.0.1-preview.0.127 168 3/6/2025
9.0.1-preview.0.125 176 3/4/2025
9.0.1-preview.0.119 74 2/28/2025
9.0.1-preview.0.118 58 2/28/2025
9.0.1-preview.0.116 63 2/28/2025
9.0.1-preview.0.112 53 2/27/2025
9.0.1-preview.0.111 58 2/27/2025
9.0.1-preview.0.110 110 2/26/2025
9.0.1-preview.0.107 61 2/26/2025
9.0.1-preview.0.106 62 2/26/2025
9.0.1-preview.0.105 63 2/26/2025
9.0.1-preview.0.104 68 2/26/2025
9.0.1-preview.0.103 86 2/26/2025
9.0.1-preview.0.102 82 2/26/2025
9.0.1-preview.0.100 53 2/26/2025
9.0.1-preview.0.99 94 2/25/2025
9.0.1-preview.0.97 64 2/25/2025
9.0.1-preview.0.96 56 2/25/2025
9.0.1-preview.0.94 59 2/24/2025
9.0.1-preview.0.93 84 2/24/2025
9.0.1-preview.0.92 59 2/21/2025
9.0.1-preview.0.91 52 2/21/2025
9.0.1-preview.0.88 53 2/19/2025
9.0.1-preview.0.87 239 2/18/2025
9.0.1-preview.0.85 259 2/18/2025
9.0.1-preview.0.84 199 2/17/2025
9.0.1-preview.0.82 158 2/17/2025
9.0.1-preview.0.79 168 2/14/2025
9.0.1-preview.0.78 186 2/14/2025
9.0.1-preview.0.77 158 2/14/2025
9.0.1-preview.0.76 201 2/14/2025
9.0.1-preview.0.73 192 2/14/2025
9.0.1-preview.0.71 132 2/14/2025
9.0.1-preview.0.70 182 2/13/2025
9.0.1-preview.0.69 170 2/13/2025
9.0.1-preview.0.67 181 2/13/2025
9.0.1-preview.0.62 163 2/11/2025
9.0.1-preview.0.58 74 2/7/2025
9.0.1-preview.0.56 61 2/7/2025
9.0.1-preview.0.55 51 2/6/2025
9.0.1-preview.0.54 55 2/6/2025
9.0.1-preview.0.53 50 2/6/2025
9.0.1-preview.0.52 53 2/6/2025
9.0.1-preview.0.50 68 2/6/2025
9.0.1-preview.0.49 88 2/6/2025
9.0.1-preview.0.47 54 2/6/2025
9.0.1-preview.0.45 57 2/6/2025
9.0.1-preview.0.43 61 2/5/2025
9.0.1-preview.0.42 57 2/5/2025
9.0.1-preview.0.41 60 2/5/2025
9.0.1-preview.0.35 59 2/4/2025
9.0.1-preview.0.20 56 1/30/2025
9.0.1-preview.0.19 52 1/30/2025
9.0.1-preview.0.18 55 1/30/2025
9.0.1-preview.0.14 56 1/30/2025
9.0.1-preview.0.13 61 1/30/2025
9.0.1-preview.0.11 49 1/29/2025
9.0.1-preview.0.10 50 1/29/2025
9.0.1-preview.0.9 54 1/27/2025
9.0.1-preview.0.2 109 1/27/2025
3.0.5-preview.0.2 118 4/1/2025
3.0.5-preview.0.1 75 2/11/2025
3.0.4 475 1/25/2025
3.0.4-preview.0.38 64 1/25/2025
3.0.4-preview.0.37 99 12/6/2024
3.0.4-preview.0.36 191 12/5/2024
3.0.4-preview.0.34 64 12/5/2024
3.0.4-preview.0.32 65 12/4/2024
3.0.4-preview.0.31 83 11/25/2024
3.0.4-preview.0.30 62 11/25/2024
3.0.4-preview.0.29 53 11/21/2024
3.0.4-preview.0.28 114 11/19/2024
3.0.4-preview.0.27 54 11/19/2024
3.0.4-preview.0.23 57 11/19/2024
3.0.4-preview.0.21 49 11/19/2024
3.0.4-preview.0.20 53 11/18/2024
3.0.4-preview.0.19 65 11/18/2024
3.0.4-preview.0.18 50 11/18/2024
3.0.4-preview.0.17 53 11/18/2024
3.0.4-preview.0.16 54 11/15/2024
3.0.4-preview.0.15 54 11/15/2024
3.0.4-preview.0.14 70 11/2/2024
3.0.4-preview.0.13 63 10/29/2024
3.0.4-preview.0.12 59 10/29/2024
3.0.4-preview.0.8 64 10/29/2024
3.0.4-preview.0.7 62 10/29/2024
3.0.4-preview.0.6 54 10/24/2024
3.0.4-preview.0.5 64 10/23/2024
3.0.4-preview.0.4 53 10/23/2024
3.0.4-preview.0.3 56 10/23/2024
3.0.4-preview.0.2 60 10/23/2024
3.0.4-preview.0.1 198 10/16/2024
3.0.3 382 10/11/2024
3.0.3-preview.0.56 71 10/10/2024
3.0.3-preview.0.55 66 10/10/2024
3.0.3-preview.0.54 68 10/10/2024
3.0.3-preview.0.50 64 10/10/2024
3.0.3-preview.0.49 81 10/9/2024
3.0.3-preview.0.44 88 10/8/2024
3.0.3-preview.0.43 61 10/8/2024
3.0.3-preview.0.42 62 10/7/2024
3.0.3-preview.0.41 65 10/7/2024
3.0.3-preview.0.40 93 10/1/2024
3.0.3-preview.0.39 68 10/1/2024
3.0.3-preview.0.38 64 10/1/2024
3.0.3-preview.0.36 68 9/30/2024
3.0.3-preview.0.35 78 9/26/2024
3.0.3-preview.0.34 74 9/26/2024
3.0.3-preview.0.33 61 9/26/2024
3.0.3-preview.0.32 91 9/24/2024
3.0.3-preview.0.31 732 9/10/2024
3.0.3-preview.0.30 61 9/9/2024
3.0.3-preview.0.29 59 9/9/2024
3.0.3-preview.0.28 50 9/8/2024
3.0.3-preview.0.27 70 9/5/2024
3.0.3-preview.0.26 70 9/3/2024
3.0.3-preview.0.25 59 9/3/2024
3.0.3-preview.0.24 70 9/3/2024
3.0.3-preview.0.23 83 8/21/2024
3.0.3-preview.0.22 50 7/29/2024
3.0.3-preview.0.21 70 7/25/2024
3.0.3-preview.0.18 73 7/12/2024
3.0.3-preview.0.17 63 7/12/2024
3.0.3-preview.0.16 53 7/12/2024
3.0.3-preview.0.15 61 7/5/2024
3.0.3-preview.0.14 124 6/24/2024
3.0.3-preview.0.13 87 6/23/2024
3.0.3-preview.0.12 77 6/21/2024
3.0.3-preview.0.11 76 6/20/2024
3.0.3-preview.0.9 358 5/27/2024
3.0.3-preview.0.8 72 5/27/2024
3.0.3-preview.0.7 98 5/17/2024
3.0.3-preview.0.6 74 5/14/2024
3.0.3-preview.0.5 282 5/8/2024
3.0.3-preview.0.3 97 5/6/2024
3.0.3-preview.0.1 80 4/25/2024
3.0.2 1,311 4/25/2024
3.0.2-preview.0.4 93 4/25/2024
3.0.2-preview.0.3 146 4/25/2024
3.0.2-preview.0.2 97 4/25/2024
3.0.2-preview.0.1 75 4/25/2024
3.0.1 433 4/25/2024
3.0.1-preview.0.10 79 4/24/2024
3.0.1-preview.0.9 184 4/19/2024
3.0.1-preview.0.8 68 4/24/2024
3.0.1-preview.0.7 133 4/24/2024

## Release 3.0.1 [25.04.24]

- [N] Initial release

-----

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