FonsecaFramework 2026.5.12.1

dotnet add package FonsecaFramework --version 2026.5.12.1
                    
NuGet\Install-Package FonsecaFramework -Version 2026.5.12.1
                    
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="FonsecaFramework" Version="2026.5.12.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FonsecaFramework" Version="2026.5.12.1" />
                    
Directory.Packages.props
<PackageReference Include="FonsecaFramework" />
                    
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 FonsecaFramework --version 2026.5.12.1
                    
#r "nuget: FonsecaFramework, 2026.5.12.1"
                    
#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.
#:package FonsecaFramework@2026.5.12.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=FonsecaFramework&version=2026.5.12.1
                    
Install as a Cake Addin
#tool nuget:?package=FonsecaFramework&version=2026.5.12.1
                    
Install as a Cake Tool

FonsecaFramework

Base classes and utilities for .NET applications.

Overview

FonsecaFramework is a .NET Standard 2.0 library that provides foundational building blocks for .NET applications. It includes MVVM support, repository patterns, cryptography helpers, JSON serialization extensions, file I/O utilities, email services, and thread-safe collections.

Installation

dotnet add package FonsecaFramework

Features

Area Key Classes
MVVM / Notifications NotificationBase, ViewModelBase, ViewModelBase<T>
Operation Results OperationResult<T>, FailableAction<TSuccess, TFailure>, UnitOfWork
Repository Pattern IRepository<T, ID>, Repository<T>, RepositorySetting<T>
Cryptography Encryptior (AES encrypt / decrypt)
File I/O FileManager, JsonFileManager<T>
Email EmailService (SMTP)
Collections List<T> (thread-safe)
Extensions ToJsonString(), ToObject<T>(), ToDictionary(), EnumToList<T>()

Examples

OperationResult

Wrap the outcome of any operation with a strongly-typed result:

using FonsecaFramework.Core;

OperationResult<string> success = OperationResult<string>.CreateSuccess("All good");
Console.WriteLine(success.Success); // True
Console.WriteLine(success.Result);  // "All good"

OperationResult<string> failure = OperationResult<string>.CreateFailure();
Console.WriteLine(failure.Success); // False

FailableAction

Run an action with an automatic fallback on failure:

using FonsecaFramework.Core;

var result = FailableAction<string, string>.Run(
    action: () => "primary result",
    actionWhenFailed: () => "fallback result"
);

Console.WriteLine(result.Status);  // True
Console.WriteLine(result.Success); // "primary result"

AES Encryption / Decryption

using FonsecaFramework.Cryptography;

var encryptor = new Encryptior(Guid.Parse("01234567-89ab-cdef-0123-456789abcdef"));

string encrypted = await encryptor.Encrypt("Hello, World!");
string decrypted = await encryptor.Decrypt(encrypted);
Console.WriteLine(decrypted); // "Hello, World!"

JSON Extensions

using FonsecaFramework.Core;

var obj = new { Name = "Fonseca", Version = 1 };
string json = obj.ToJsonString();          // Serialize
var back = json.ToObject<dynamic>();       // Deserialize

JsonFileManager

using FonsecaFramework.IO;

var manager = new JsonFileManager<MyConfig>();
manager.WriteToFile("config.json", new MyConfig { Key = "value" });
MyConfig config = manager.GetFromFile("config.json");

Thread-Safe List

using FonsecaFramework.Collections;

var list = new List<int>();
list.Add(1);    // Thread-safe add
list.Remove(1); // Thread-safe remove
list.Clear();   // Thread-safe clear

Repository Pattern

Implement a data repository by extending the base class:

using FonsecaFramework.Infrastructure;

public class CustomerRepository : Repository<Customer>
{
    public CustomerRepository(RepositorySetting<Customer> settings) : base(settings) { }

    public override Task Delete(long EntityID) { /* your logic */ }
    public override Task<Customer> FindById(long EntityID) { /* your logic */ }
    public override Task<List<Customer>> GetAll() { /* your logic */ }
    public override Task<Customer> Insert(Customer entity) { /* your logic */ }
    public override Task<Customer> Update(Customer entity) { /* your logic */ }
}

Requirements

  • .NET Standard 2.0 compatible runtime

License

Copyright 2025 Steven Fonseca / VLR Creations

Licensed under the Apache License, Version 2.0. You may use this library free of charge, provided you include the required attribution notices. See the LICENSE file for full terms.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (6)

Showing the top 5 NuGet packages that depend on FonsecaFramework:

Package Downloads
FonsecaFramework.Azure

Azure Connection Library

FonsecaFramework.Sql

Microsoft Sql Server library

FonsecaFramework.Ai

FonsecaFramework.Ai is a .NET library that provides practical AI and machine learning utilities, including AutoML model building, RAG vector search, sentiment/discourse analysis, and OpenAI-compatible chat client integration.

FonsecaFramework.PayPal

An extremely simplified PayPal REST API client

FonsecaFramework.UWP

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2026.5.12.1 114 5/13/2026
2026.5.11.1 193 5/11/2026
2026.5.7.2 243 5/7/2026
2026.5.7.1 238 5/7/2026
2026.5.6.1 244 5/6/2026
2026.5.5.1 246 5/5/2026
2026.5.2.1 225 5/2/2026
2026.4.30.1 202 4/30/2026
2026.4.29.1 239 4/29/2026
2026.4.27.1 205 4/28/2026
2026.4.22.1 200 4/22/2026
2026.4.21.1 198 4/21/2026
2026.4.20.1 212 4/20/2026
2026.4.15.1 213 4/15/2026
2026.4.13.1 212 4/13/2026
2026.4.10.1 201 4/10/2026
2026.4.8.1 224 4/8/2026
2026.4.7.1 212 4/7/2026
2026.4.3.1 222 4/3/2026
2026.4.1.1 230 4/1/2026
Loading failed