/ForEvolve-Framework

A .NET Standard 2.1 Toolbox (a.k.a. .NET Core 3+, .NET 5)

Primary LanguageC#MIT LicenseMIT

ForEvolve Framework (or toolbox)

VSTS master build

This project is my personal toolbox, where I add utility classes that I was tired of copying from project to project, that I needed to facilitate my life or for any other reason toward reusability.

Examples of features are Azure table repository, Azure blob repositories (JSON object and files), email services, EF Core data Seeders, EF Core value converters (object to JSON, Dictionary<string, object> to JSON), markdown to HTML, HTML to pdf, Razor View to HTML string service, and more.

Versioning

The packages follows semantic versioning and uses Nerdbank.GitVersioning under the hood to automate versioning based on Git commits.

Packages

Packages are available on NuGet https://www.nuget.org/profiles/ForEvolve.

For the pre-release packages, use the ForEvolve/Toolbox feedz.io packages source.

List of packages

Name NuGet.org feedz.io
dotnet add package ForEvolve.AspNetCore NuGet.org feedz.io
dotnet add package ForEvolve.Azure NuGet.org feedz.io
dotnet add package ForEvolve.Contracts NuGet.org feedz.io
dotnet add package ForEvolve.Core NuGet.org feedz.io
dotnet add package ForEvolve.EntityFrameworkCore NuGet.org feedz.io
dotnet add package ForEvolve.Markdown NuGet.org feedz.io
dotnet add package ForEvolve.Markdown.Abstractions NuGet.org feedz.io
dotnet add package ForEvolve.Pdf NuGet.org feedz.io
dotnet add package ForEvolve.Pdf.Abstractions NuGet.org feedz.io

The projects

In this section are quick descriptions of assemblies and links to their README file. This is until I find the time to build a documentation website.

ForEvolve

You can find the meta-package that references all ForEvolve.* projects at the following repo: ForEvolve/MetaPackages.

ForEvolve.AspNetCore

This project aims at adding features over Asp.Net Core. Example: myObject.ToJsonHttpContent(), myObject.ToJson(), myHttpContent.ReadAsJsonObjectAsync<MyObjectType>(), anyString.ToObject<MyObjectType>(), IViewRendererService, IEmailSenderService, IHttpHeaderValueAccessor, IUserIdAccessor, some base middlewares and more.

See ForEvolve.AspNetCore for more information.

ForEvolve.Azure

This project aims at adding features over the Azure SDK like Object (Blob), Queue, Table and KeyVault repositories.

See ForEvolve.Azure for more information.

ForEvolve.Contracts

This project contains shared models.

See ForEvolve.Contracts for more information.

ForEvolve.Core

This project stand as the root of all projects. For now, it only contains the ForEvolveException class.

See ForEvolve.Core for more information.

ForEvolve.EntityFrameworkCore

This project adds EF Core utilities, like easy data seeding, and value conversion.

See ForEvolve.EntityFrameworkCore for more information.

ForEvolve.Markdown

Allows consumers to easily convert strings to Markdown using the IMarkdownConverter interface.

See ForEvolve.Markdown for more information.

ForEvolve.Markdown.Abstractions

This is the abstractions library. Only use this if you want to create your own custom implementation of the IMarkdownConverter.

See the ForEvolve.Markdown project for more info.

ForEvolve.Pdf

This library contains implementations of the ForEvolve.Pdf.Abstractions.IHtmlToPdfConverter interface, allowing convertion of HTML to a PDF.

See the ForEvolve.Pdf project for more info.

ForEvolve.Pdf.Abstractions

This is the abstractions library. Only use this if you want to create your own custom implementation of the IHtmlToPdfConverter.

See the ForEvolve.Pdf.Abstractions project for more info.

How to contribute?

If you would like to contribute to the Framework, first, thank you for your interest and please read Contributing to ForEvolve open source projects for more information.

Contributor Covenant Code of Conduct

Also, please read the Contributor Covenant Code of Conduct that applies to all ForEvolve repositories.

Release notes

Version 2.1

  • Add the app.Seed<MyDbContext>(); extension method to help seed the database without writing boilerplate code.

Version 2.0

  • Original version after the switch to GitVersioning