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

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.231
                    
NuGet\Install-Package BridgingIT.DevKit.Common.Abstractions -Version 9.0.1-preview.0.231
                    
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.231" />
                    
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.231" />
                    
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.231
                    
#r "nuget: BridgingIT.DevKit.Common.Abstractions, 9.0.1-preview.0.231"
                    
#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.231&prerelease
                    
Install BridgingIT.DevKit.Common.Abstractions as a Cake Addin
#tool nuget:?package=BridgingIT.DevKit.Common.Abstractions&version=9.0.1-preview.0.231&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. 
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.244 141 18 days ago
9.0.1-preview.0.243 216 20 days ago
9.0.1-preview.0.242 148 20 days ago
9.0.1-preview.0.241 145 20 days ago
9.0.1-preview.0.239 145 20 days ago
9.0.1-preview.0.238 241 20 days ago
9.0.1-preview.0.237 201 22 days ago
9.0.1-preview.0.236 138 25 days ago
9.0.1-preview.0.235 121 25 days ago
9.0.1-preview.0.234 133 25 days ago
9.0.1-preview.0.233 153 a month ago
9.0.1-preview.0.232 120 a month ago
9.0.1-preview.0.231 115 a month ago
9.0.1-preview.0.230 173 a month ago
9.0.1-preview.0.229 132 a month ago
9.0.1-preview.0.228 136 a month ago
9.0.1-preview.0.227 128 a month ago
9.0.1-preview.0.226 123 a month ago
9.0.1-preview.0.220 157 a month ago
9.0.1-preview.0.219 112 a month ago
9.0.1-preview.0.218 111 a month ago
9.0.1-preview.0.217 171 a month ago
9.0.1-preview.0.215 134 a month ago
9.0.1-preview.0.214 117 a month ago
9.0.1-preview.0.213 132 a month ago
9.0.1-preview.0.212 139 a month ago
9.0.1-preview.0.211 114 a month ago
9.0.1-preview.0.210 119 a month ago
9.0.1-preview.0.209 131 a month ago
9.0.1-preview.0.208 135 a month ago
9.0.1-preview.0.206 120 a month ago
9.0.1-preview.0.205 125 a month ago
9.0.1-preview.0.204 124 a month ago
9.0.1-preview.0.202 115 a month ago
9.0.1-preview.0.199 53 a month ago
9.0.1-preview.0.198 91 a month ago
9.0.1-preview.0.196 89 a month ago
9.0.1-preview.0.193 89 a month ago
9.0.1-preview.0.189 118 a month ago
9.0.1-preview.0.188 446 a month ago
9.0.1-preview.0.187 457 a month ago
9.0.1-preview.0.186 445 a month ago
9.0.1-preview.0.185 445 a month ago
9.0.1-preview.0.184 444 a month ago
9.0.1-preview.0.183 442 a month ago
9.0.1-preview.0.182 55 a month ago
9.0.1-preview.0.180 105 a month ago
9.0.1-preview.0.179 112 a month ago
9.0.1-preview.0.178 110 a month ago
9.0.1-preview.0.175 112 a month ago
9.0.1-preview.0.174 111 2 months ago
9.0.1-preview.0.173 126 2 months ago
9.0.1-preview.0.172 264 2 months ago
9.0.1-preview.0.171 111 2 months ago
9.0.1-preview.0.170 111 2 months ago
9.0.1-preview.0.165 108 2 months ago
9.0.1-preview.0.162 113 2 months ago
9.0.1-preview.0.160 112 2 months ago
9.0.1-preview.0.152 92 2 months ago
9.0.1-preview.0.148 129 2 months ago
9.0.1-preview.0.147 115 2 months ago
9.0.1-preview.0.146 112 2 months ago
9.0.1-preview.0.145 120 2 months ago
9.0.1-preview.0.141 121 2 months ago
9.0.1-preview.0.140 159 2 months ago
9.0.1-preview.0.139 117 2 months ago
9.0.1-preview.0.138 130 2 months ago
9.0.1-preview.0.137 112 2 months ago
9.0.1-preview.0.135 126 2 months ago
9.0.1-preview.0.134 165 2 months ago
9.0.1-preview.0.133 160 2 months ago
9.0.1-preview.0.132 157 2 months ago
9.0.1-preview.0.130 157 2 months ago
9.0.1-preview.0.129 210 2 months ago
9.0.1-preview.0.128 161 2 months ago
9.0.1-preview.0.127 166 2 months ago
9.0.1-preview.0.125 174 2 months ago
9.0.1-preview.0.119 72 2 months ago
9.0.1-preview.0.118 56 2 months ago
9.0.1-preview.0.116 61 2 months ago
9.0.1-preview.0.112 49 2 months ago
9.0.1-preview.0.111 55 2 months ago
9.0.1-preview.0.110 106 2 months ago
9.0.1-preview.0.107 58 2 months ago
9.0.1-preview.0.106 59 2 months ago
9.0.1-preview.0.105 60 2 months ago
9.0.1-preview.0.104 65 2 months ago
9.0.1-preview.0.103 83 2 months ago
9.0.1-preview.0.102 79 2 months ago
9.0.1-preview.0.100 50 2 months ago
9.0.1-preview.0.99 91 2 months ago
9.0.1-preview.0.97 61 2 months ago
9.0.1-preview.0.96 53 2 months ago
9.0.1-preview.0.94 56 2 months ago
9.0.1-preview.0.93 81 2 months ago
9.0.1-preview.0.92 57 2 months ago
9.0.1-preview.0.91 50 2 months ago
9.0.1-preview.0.88 51 3 months ago
9.0.1-preview.0.87 236 3 months ago
9.0.1-preview.0.85 255 3 months ago
9.0.1-preview.0.84 197 3 months ago
9.0.1-preview.0.82 156 3 months ago
9.0.1-preview.0.79 165 3 months ago
9.0.1-preview.0.78 184 3 months ago
9.0.1-preview.0.77 156 3 months ago
9.0.1-preview.0.76 199 3 months ago
9.0.1-preview.0.73 189 3 months ago
9.0.1-preview.0.71 130 3 months ago
9.0.1-preview.0.70 180 3 months ago
9.0.1-preview.0.69 168 3 months ago
9.0.1-preview.0.67 179 3 months ago
9.0.1-preview.0.62 161 3 months ago
9.0.1-preview.0.58 71 3 months ago
9.0.1-preview.0.56 59 3 months ago
9.0.1-preview.0.55 48 3 months ago
9.0.1-preview.0.54 53 3 months ago
9.0.1-preview.0.53 48 3 months ago
9.0.1-preview.0.52 50 3 months ago
9.0.1-preview.0.50 65 3 months ago
9.0.1-preview.0.49 86 3 months ago
9.0.1-preview.0.47 52 3 months ago
9.0.1-preview.0.45 56 3 months ago
9.0.1-preview.0.43 59 3 months ago
9.0.1-preview.0.42 55 3 months ago
9.0.1-preview.0.41 58 3 months ago
9.0.1-preview.0.35 57 3 months ago
9.0.1-preview.0.20 54 3 months ago
9.0.1-preview.0.19 50 3 months ago
9.0.1-preview.0.18 54 3 months ago
9.0.1-preview.0.14 54 3 months ago
9.0.1-preview.0.13 59 3 months ago
9.0.1-preview.0.11 47 3 months ago
9.0.1-preview.0.10 48 3 months ago
9.0.1-preview.0.9 52 3 months ago
9.0.1-preview.0.2 106 3 months ago
3.0.5-preview.0.2 115 a month ago
3.0.5-preview.0.1 73 3 months ago
3.0.4 462 3 months ago
3.0.4-preview.0.38 60 3 months ago
3.0.4-preview.0.37 96 5 months ago
3.0.4-preview.0.36 190 5 months ago
3.0.4-preview.0.34 62 5 months ago
3.0.4-preview.0.32 63 5 months ago
3.0.4-preview.0.31 81 5 months ago
3.0.4-preview.0.30 59 5 months ago
3.0.4-preview.0.29 51 5 months ago
3.0.4-preview.0.28 112 6 months ago
3.0.4-preview.0.27 52 6 months ago
3.0.4-preview.0.23 53 6 months ago
3.0.4-preview.0.21 47 6 months ago
3.0.4-preview.0.20 51 6 months ago
3.0.4-preview.0.19 62 6 months ago
3.0.4-preview.0.18 48 6 months ago
3.0.4-preview.0.17 51 6 months ago
3.0.4-preview.0.16 52 6 months ago
3.0.4-preview.0.15 52 6 months ago
3.0.4-preview.0.14 68 6 months ago
3.0.4-preview.0.13 61 6 months ago
3.0.4-preview.0.12 57 6 months ago
3.0.4-preview.0.8 62 6 months ago
3.0.4-preview.0.7 60 6 months ago
3.0.4-preview.0.6 52 6 months ago
3.0.4-preview.0.5 62 6 months ago
3.0.4-preview.0.4 51 6 months ago
3.0.4-preview.0.3 54 6 months ago
3.0.4-preview.0.2 58 6 months ago
3.0.4-preview.0.1 196 7 months ago
3.0.3 380 7 months ago
3.0.3-preview.0.56 69 7 months ago
3.0.3-preview.0.55 64 7 months ago
3.0.3-preview.0.54 66 7 months ago
3.0.3-preview.0.50 61 7 months ago
3.0.3-preview.0.49 79 7 months ago
3.0.3-preview.0.44 84 7 months ago
3.0.3-preview.0.43 59 7 months ago
3.0.3-preview.0.42 59 7 months ago
3.0.3-preview.0.41 63 7 months ago
3.0.3-preview.0.40 91 7 months ago
3.0.3-preview.0.39 64 7 months ago
3.0.3-preview.0.38 61 7 months ago
3.0.3-preview.0.36 66 7 months ago
3.0.3-preview.0.35 76 7 months ago
3.0.3-preview.0.34 72 7 months ago
3.0.3-preview.0.33 59 7 months ago
3.0.3-preview.0.32 89 7 months ago
3.0.3-preview.0.31 719 8 months ago
3.0.3-preview.0.30 59 8 months ago
3.0.3-preview.0.29 56 8 months ago
3.0.3-preview.0.28 48 8 months ago
3.0.3-preview.0.27 67 8 months ago
3.0.3-preview.0.26 68 8 months ago
3.0.3-preview.0.25 57 8 months ago
3.0.3-preview.0.24 67 8 months ago
3.0.3-preview.0.23 81 8 months ago
3.0.3-preview.0.22 48 9 months ago
3.0.3-preview.0.21 68 9 months ago
3.0.3-preview.0.18 71 10 months ago
3.0.3-preview.0.17 61 10 months ago
3.0.3-preview.0.16 51 10 months ago
3.0.3-preview.0.15 59 10 months ago
3.0.3-preview.0.14 122 6/24/2024
3.0.3-preview.0.13 84 6/23/2024
3.0.3-preview.0.12 75 6/21/2024
3.0.3-preview.0.11 74 6/20/2024
3.0.3-preview.0.9 356 5/27/2024
3.0.3-preview.0.8 70 5/27/2024
3.0.3-preview.0.7 96 5/17/2024
3.0.3-preview.0.6 71 5/14/2024
3.0.3-preview.0.5 270 5/8/2024
3.0.3-preview.0.3 95 5/6/2024
3.0.3-preview.0.1 78 4/25/2024
3.0.2 1,298 4/25/2024
3.0.2-preview.0.4 91 4/25/2024
3.0.2-preview.0.3 144 4/25/2024
3.0.2-preview.0.2 95 4/25/2024
3.0.2-preview.0.1 73 4/25/2024
3.0.1 429 4/25/2024
3.0.1-preview.0.10 77 4/24/2024
3.0.1-preview.0.9 182 4/19/2024
3.0.1-preview.0.8 66 4/24/2024
3.0.1-preview.0.7 131 4/24/2024

## Release 3.0.1 [25.04.24]

- [N] Initial release

-----

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