uwap.WebFramework 2.1.0

dotnet add package uwap.WebFramework --version 2.1.0                
NuGet\Install-Package uwap.WebFramework -Version 2.1.0                
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="uwap.WebFramework" Version="2.1.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add uwap.WebFramework --version 2.1.0                
#r "nuget: uwap.WebFramework, 2.1.0"                
#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.
// Install uwap.WebFramework as a Cake Addin
#addin nuget:?package=uwap.WebFramework&version=2.1.0

// Install uwap.WebFramework as a Cake Tool
#tool nuget:?package=uwap.WebFramework&version=2.1.0                

WebFramework

Cross-platform .NET library written in C# that allows you to create a web server for dynamic and/or static websites and web apps with ease.

Website: https://uwap.org/projects/webframework

Changelog: https://uwap.org/changes/webframework

Guides: https://uwap.org/guides/webframework

Main features

  • Modular structure for high customizability
  • Events for different types of HTTP requests (app, API, post, upload, download) with objects for easy access to everything you need to handle those requests
  • Automatic SSL certificates using Let's Encrypt
  • Pages and elements so you don't have to write any HTML code
  • .wfpg files to quickly create static web pages
  • Accounts with everything one would expect from an account
  • Mail server (incoming and outgoing) with SPF, DKIM and DMARC
  • Object-oriented database
  • File server with server cache and browser cache management
  • Worker to regularly update files, handle memory integrity, certificates and more
  • Plugins (see more below)
  • Option for usage as a local web server for local web apps as interfaces for proper apps on a computer
  • Backups for the database and external files

...and much more!

Most features have plugins as interfaces.

Installation

You can get the NuGet package here: uwap.WebFramework

You can also download the source code from GitHub and add a reference to it from your project.

This library is based on ASP.NET, so it's best to create an empty ASP.NET project rather than a console app (those will terminate unless paused otherwise).

Official plugins

  • ServerPlugin (interface for server management by administrator accounts)
  • UsersPlugin (interface for accounts)
  • NotesPlugin (web app for user's notes)
  • MailPlugin (mailbox system and interface for the mail server)
  • RedirectPlugin (allows for static redirects)
  • BackupDownloaderPlugin (for off-site backup storage)

Planned plugins

  • FilesPlugin (file management for admins and interface for a file server)
  • GitPlugin (interface for a git server running on the same machine)
  • FinancesPlugin (simple finance manager for users)

Used libraries

  • Certes to talk to Let's Encrypt
  • DnsClient.NET for DNS requests to find mail servers and check mail authentication
  • MailKit to decode and encode emails from/to SMTP-compliant messages, send emails on the SMTP level once a suitable mail server for the recipient has been found, and validate DKIM signatures of messages against the keys found in the DNS records
  • SmtpServer to listen for incoming emails on the raw SMTP level
  • Otp.NET to generate and check time-based one-time passwords (TOTP) for two-factor authentication
  • QRCoder to generate QR codes for 2FA setup strings
  • Isopoh.Cryptography.Argon2 to hash passwords using Argon2
  • IPAddressRange to parse IP address ranges and check whether a given IP address is within that range (used for mail authentication)
Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on uwap.WebFramework:

Package Downloads
uwap.UsersPlugin

Plugin for WebFramework that adds a simple interface to register, log in and manage your account settings.

uwap.NotesPlugin

Plugin for WebFramework that adds a simple notes app for users.

uwap.ServerPlugin

Plugin for WebFramework that adds a simple interface to manage the program and server in general.

uwap.RedirectPlugin

Plugin for WebFramework that adds simple static redirects.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.1.0 119 5/26/2024
2.0.0.1 148 3/17/2024
2.0.0 247 3/3/2024
1.5.4 132 2/10/2024
1.5.3 133 12/29/2023
1.5.2.1 185 11/18/2023
1.5.2 114 11/18/2023
1.5.1.2 142 11/7/2023
1.5.1.1 115 11/7/2023
1.5.1 121 11/7/2023
1.5.0.2 121 11/5/2023
1.5.0.1 131 10/31/2023
1.5.0 157 10/29/2023
1.4.2 158 10/6/2023
1.4.1 167 9/26/2023
1.4.0 143 9/24/2023
1.3.4.1 129 9/18/2023
1.3.4 157 9/17/2023
1.3.3.3 136 9/16/2023
1.3.3.2 129 9/15/2023
1.3.3.1 134 9/15/2023
1.3.3 138 9/15/2023
1.3.2 170 9/15/2023
1.3.1 125 9/15/2023