ValueOf
OneOf
ValueOf | OneOf | |
---|---|---|
9 | 25 | |
833 | 3,225 | |
- | - | |
0.0 | 2.9 | |
about 1 year ago | 3 months ago | |
C# | C# | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ValueOf
-
Robust Design through Value Objects in C#
As we anticipate advancements in C#, we can still forge ahead with crafting resilient applications by utilizing the "ValueOf" package as a provisional solution. Below, we create a validated EmailAddress class leveraging the package:
-
Check out new C# 12 preview features! - .NET Blog
Probably better to use something like https://github.com/mcintyre321/ValueOf until we get a better solution (if we ever do). I agree that this is a pitfall.
-
Strong typedefs
The problem you’re describing here I think is ‘primitive obsession’, and the solution you’ve described is I think essentially a value object. This library might be useful https://github.com/mcintyre321/ValueOf
-
New Exception helpers in .NET 8
It lacks compile-time validation (though an analyzer that at least detects validation errors in the constructor should be fairly easy; more complicated flow control cases are probably hard), but at runtime, https://github.com/mcintyre321/ValueOf would let you do that.
- The power of OneOf. Unions for C#
-
Class vs Struct
If you want to wrap a small number of properties in a type to avoid primitive obsession, consider using ValueOf.
-
Is there anyway to override default values of the decimal type in c#?
You might be able to create a wrapper type with something like ValueOf.
-
Primitive Obsession
I good library I've found for addressing this issue is https://github.com/mcintyre321/ValueOf
OneOf
-
The Monad Invasion - Part 1: What's a Monad?
OneOf
-
Discriminated Unions: Essa feature faz falta no CSharp
Inclusive, para suportar esse tipo de funcionalidade, foi criada a biblioteca OneOf: mcintyre321/OneOf: Easy to use F#-like ~discriminated~ unions for C# with exhaustive compile time matching (github.com)
- Easy to use F#-like ~discriminated~ unions for C# with big compile time matching
-
Rolled my own Result<T,E> type that seems to work better than others.
Then I found discussion of the OneOf package, and then found some simpler Result code. I tried using that code but I found the use of Match and lambdas meant I couldn't simply break out of the loop in my example.
-
What's new in C# 12: overview
Until that feature lands there's this https://github.com/mcintyre321/OneOf which is pretty nice.
- The combined power of F# and C#
-
Exception handling between controller and service
Yep, it's called result pattern, aforementioned above. There was two highlighted implementations - OneOf, FluentResults.
-
Have you heard of AnyOf .NET Lib?
No he didn't. He made a video of the OneOf library. Not this one.
-
Have you heard of AnyOf C# Library?
We already have OneOf https://github.com/mcintyre321/OneOf I've used it in Production multiple times and it's an awesome way to keep everything strongly typed and eliminate null reference exceptions.
- What your hidden nuget gems ?
What are some alternatives?
FSharp.UMX - F# units of measure for primitive non-numeric types
language-ext - C# functional language extensions - a base class library for functional programming
eShopOnWeb - Sample ASP.NET Core 8.0 reference application, powered by Microsoft, demonstrating a layered application architecture with monolithic deployment model. Download the eBook PDF from docs folder.
csharp-monad - Library of monads for C#
EngineeringUnits - Working with units made easy with automatic unit-check and converting between units
csharplang - The official repo for the design of the C# programming language
coolstore-microservices - A full-stack .NET microservices build on Dapr and Tye
Rop.OneOfExtensionGenerator - OneOf Helper Extensions Source Generator
StringlyTyped - A cure for StringlyTyped software and PrimitiveObsession
TensorFlowSharp - TensorFlow API for .NET languages
BinderTool - Dark Souls II / Dark Souls III / Bloodborne bdt, bhd, bnd, dcx, tpf, fmg and param unpacking tool