![]() |
VOOZH | about |
dotnet add package SystemLibrary.Common.Framework --version 8.5.0.2
NuGet\Install-Package SystemLibrary.Common.Framework -Version 8.5.0.2
<PackageReference Include="SystemLibrary.Common.Framework" Version="8.5.0.2" />
<PackageVersion Include="SystemLibrary.Common.Framework" Version="8.5.0.2" />Directory.Packages.props
<PackageReference Include="SystemLibrary.Common.Framework" />Project file
paket add SystemLibrary.Common.Framework --version 8.5.0.2
#r "nuget: SystemLibrary.Common.Framework, 8.5.0.2"
#:package SystemLibrary.Common.Framework@8.5.0.2
#addin nuget:?package=SystemLibrary.Common.Framework&version=8.5.0.2Install as a Cake Addin
#tool nuget:?package=SystemLibrary.Common.Framework&version=8.5.0.2Install as a Cake Tool
Framework for every .NET application.
>= .NET 8
To request access, email support@systemlibrary.com with your GitHub username and specify the repo.
Read-only access is granted on request — no questions asked.
Once approved, you can fork, clone, and submit pull requests.
Use AddFrameworkServices() and AddFrameworkMiddlewares() to enable HTTPS redirection, caching, logging, auth, cookie policies, endpoints, and more.
var options = new FrameworkOptions();
services.AddFrameworkServices(options);
app.AddFrameworkMiddlewares(options);
Auto-binds JSON config files to C# classes by name, with transformations based on environment name.
~/myconfig.json: { url: "www.systemlibrary.com" }
class MyConfig : Config<MyConfig> { public string Url { get; set; } }
var url = MyConfig.Instance.Url;
Global Log instance with .Dump() – similar to console.log in JavaScript.
Log.Dump(typeof(string));
Log.Error("hello");
Sharded global cache with fallback, metrics, and auto key generation.
var value = Cache.Get<string>("key", () => Compute());
Client which caches underlying HttpClient with automatic retry policies, metrics and a circuit breaker [Gold Tier].
var json = Client.Get<string>("https://api.example.com/data");
var json2 = "https://api.example.com/data".Get<string>();
A metric UI rendering a pie chart per metric with the option to set a token to lock down the UI
/metrics/ui
.Json(), .PartialJson(), .Encrypt(), .Decrypt(), .ToBase64(), .FromBase64(), .Compress(), .Decompress(), .Obfuscate(), .Deobfuscate(), .Is(), .IsNot(), .GetCompressedId() and more...
var json = user.Json();
var compressedId = json.GetCompressedId();
var encrypted = json.Encrypt();
var obfuscated = json.Obfuscate();
var hash = json.ToSha1Hash();
var base64 = json.ToBase64();
Encrypt/decrypt using AES CBC PKCS7 via string/byte extensions with global key management.
var encrypted = "secret".Encrypt();
var decrypted = encrypted.Decrypt();
Decorate enums with [EnumText] and [EnumValue], and a JsonConverter is registered and injected into MVC, serialization/deserialization uses the attributes too. Use ToValue() or ToText() on the Enum yourself.
enum Role {
[EnumValue("adm")]
[EnumText("Administrator")]
Admin,
Guest
}
...
var role = Role.Admin.ToText(); // `Administrator`
var value = Role.Admin.ToValue(); // `adm`
var role = Role.Guest.ToText(); // `Guest`
var value = Role.Guest.ToValue(); // `Guest`
All API classes can inherit this, endpoints naturally registered and easily add attributes such as: [OriginFilter], [ApiTokenFilter] and [UserAgentFilter].
Automatic 📖 /docs endpoint listing all routes, inputs, and metadata.
[ApiTokenFilter(name: "hello", value: "world")]
public class MyApi : BaseApiController
{
}
Model bindings auto-registered for DateTime and enum types — built to correctly parse most inputs into the values you actually want.
public class Controller
{
ActionResult Index(Role role, DateTime date)
{
}
}
View git history of this file if interested
Documentation with code samples
Futuristic vision to be a full framework: Future Vision
Free with Tiered Pricing for additional features at https://www.systemlibrary.com/
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 net8.0 is compatible. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 was computed. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
Showing the top 1 NuGet packages that depend on SystemLibrary.Common.Framework:
| Package | Downloads |
|---|---|
|
SystemLibrary.Common.Episerver
Library with classes, methods and dijits for every .NET >= 8 episerver web application https://github.com/systemlibrary/systemlibrary-common-episerver/#Description Installation https://systemlibrary.github.io/systemlibrary-common-episerver/Install.html Documentation with sample code https://systemlibrary.github.io/systemlibrary-common-episerver/ |
This package is not used by any popular GitHub repositories.