SmartAnnotations
Nullable
SmartAnnotations | Nullable | |
---|---|---|
3 | 2 | |
47 | 179 | |
- | - | |
5.3 | 4.2 | |
about 3 years 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.
SmartAnnotations
-
Displaying Enums with custom value
You can use annotations, more specifically the Display attribute, e.g., `[Display(Name = "Junior Developer")]. I'm working on source generators for annotations, you can find it here
- Source generator for data annotations.
Nullable
-
Why would you use Windows containers ?
https://github.com/manuelroemer/Nullable (backport nullable attributes so you can use things like [NotNullWhen]). Alternatively, https://github.com/tunnelvisionlabs/ReferenceAssemblyAnnotator/ is even niftier, as it gives you .NET 5's annotations as well. So the compiler tells you whether a Dictionary.TryGetValue result is nullable or not based on annotations that didn't exist in .NET Standard 2.0.
-
Introducing: EasyCsv Dotnet
If you need the attributes, reference https://github.com/manuelroemer/Nullable or https://github.com/tunnelvisionlabs/ReferenceAssemblyAnnotator. The latter is bigger, but retroactively adds nullability annotations to runtime references (such as Dictionary.TryGetValue).
What are some alternatives?
SmartEnum - A base class for quickly and easily creating strongly typed enum replacements in C#.
TF-Source-2 - Team Fortress 2 on Source 2 — A gamemode for s&box [UnavailableForLegalReasons - Repository access blocked]
Guard - A high-performance, extensible argument validation library.
IsExternalInit - A source code only package which allows you to use C# 9's init and record features in older target frameworks like .NET Standard 2.0 or the "old" .NET Framework by providing a polyfill for the IsExternalInit class.
ZeroIoC - ZeroIoC is reflectionless IoC Container for C#
ReferenceAssemblyAnnotator - IL weaver to add nullability annotations to .NET reference assemblies
throw - A simple, fluent, extensible, and fully customizable library for throwing exceptions for projects using .NET 6+
UtinyRipper - GUI and API library to work with Engine assets, serialized and bundle files
Roslyn - The Roslyn .NET compiler provides C# and Visual Basic languages with rich code analysis APIs.
Aspect Injector - AOP framework for .NET (c#, vb, etc)
WrapperValueObject - A .NET source generator for creating simple value objects wrapping primitive types.
MSBuild.SDK.SystemWeb - This MSBuild SDK is designed to allow for the easy creation and use of SDK (shortform) projects targeting ASP.NET 4.x using System.Web.