SystemLibrary.Common.Framework
8.3.0.4
Newer v exist
See the version list below for details.
dotnet add package SystemLibrary.Common.Framework --version 8.3.0.4
NuGet\Install-Package SystemLibrary.Common.Framework -Version 8.3.0.4
<PackageReference Include="SystemLibrary.Common.Framework" Version="8.3.0.4" />
<PackageVersion Include="SystemLibrary.Common.Framework" Version="8.3.0.4" />
<PackageReference Include="SystemLibrary.Common.Framework" />
paket add SystemLibrary.Common.Framework --version 8.3.0.4
#r "nuget: SystemLibrary.Common.Framework, 8.3.0.4"
#:package SystemLibrary.Common.Framework@8.3.0.4
#addin nuget:?package=SystemLibrary.Common.Framework&version=8.3.0.4
#tool nuget:?package=SystemLibrary.Common.Framework&version=8.3.0.4
SystemLibrary Common Framework
Description
Framework for every .NET application.
Requirements
>= .NET 8
Access & Contributing
View full source code or contribute, email support@systemlibrary.com to request access with your github username. Read-only access is granted upon request.
🚀 Features
🔧 Initialization
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);
⚙️ Config Mapping
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;
🪵 Logging
Global Log instance with .Dump() – similar to console.log in JavaScript.
Log.Dump(typeof(string));
Log.Error("hello");
🧠 Cache
Sharded global cache with fallback, metrics, and auto key generation.
var value = Cache.Get<string>("key", () => Compute());
🌐 HTTP Client
Client which caches underlying HttpClient with retry policies, circuit breaker, and metrics.
var json = Client.Get<string>("https://api.example.com/data");
var json2 = "https://api.example.com/data".Get<string>();
📦 Extensions
.Json(), .PartialJson(), .Encrypt(), .Decrypt(), .ToBase64(), .FromBase64(), .Compress(), .Decompress(), .Obfuscate(), .Deobfuscate(), .Is(), .IsNot(), .GetCompressedKey and more...
var json = user.Json();
var encrypted = json.Encrypt();
var obfuscated = encrypted.Obfuscate();
var compressedKey = obfuscated.GetCompressedKey();
"hi".ToSha256();
"hi".Compress();
"hi".ToBase64();
"hi".Obfuscate();
🔐 Encryption
Encrypt/decrypt using AES CBC PKCS7 via string/byte extensions with global key management.
var encrypted = "secret".Encrypt();
var decrypted = encrypted.Decrypt();
🧩 Enhanced Enums
Decorate enums with [EnumText] and [EnumValue] for better JSON control and use ToValue() or ToText() on the Enum.
enum Role { [EnumText("Administrator")] Admin }
...
var role = user.Role.ToText(); // `Administrator`
📡 BaseApiController
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 { }
🔗 ModelBinder
Model bindings auto-registered for DateTime and enum types — built to correctly parse most inputs into the values you actually want.
ActionResult Index(Role role, DateTime date) {
}
Latest Release Notes
- 8.3.0.4
- License, invalid but still local environments bypasses all license checks (fix)
Version history
View git history of this file if interested
Installation
Documentation
Documentation with code samples
Nuget
Source
Suggestions and feedback
License
Free with Tiered Pricing for additional features
Dependencies
- Chart.js, licensed under the MIT License.
- Prometheus-net, licensed under the MIT License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. 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. |
-
net8.0
- Microsoft.Extensions.Http.Polly (>= 8.0.15)
- prometheus-net (>= 8.2.1)
NuGet packages (1)
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/ |
GitHub repositories
This package is not used by any popular GitHub repositories.