Zero Framework C# Web Application - A Working Example As The Proof of Concept - CSHTTP-HEARTH-CMS

Oct 17, 2026
Updated Oct 18, 2026
adriancs

Build a C# web app without ASP.NET and .NET Core.

GitHub Repository: https://github.com/adriancs2/zero-framework-csharp-web-app

In the C# world, to write a web application there are two main frameworks:

  • ASP.NET, runs with IIS (default)
  • .NET Core web app, runs with Kestrel, Nginx

These two frameworks have a lot of features built-in, but most of all, the first most important feature that they provide is the "HTTP Request Parser", a component that does not exist in the C# world... until cshttp.

This repository contains a proof of concept; by using cshttp (source code available), C# developers for the first time can engineer their own web framework and run entirely free of framework dependency. A pure C# web application that runs without a framework: no ASP.NET, no IIS, no .NET Core, no pre-built middleware, no Kestrel... You engineer everything right down to the ground.

It opens the door to infinite possibilities of engineering patterns, and to inventing a framework that might be worse, but might also be better.

But even then, how would you define "worse" or "better"? A framework is designed around specific assumptions and problem scenarios. The tool remains effective as long as you operate within those assumed boundaries. But once the problem drifts outside those assumptions, the framework begins to drift as well, and may even work against you. Consider which design is "best" among these watercraft: stand-up paddleboards, kayaks, canoes, fishing boats, express cruisers, yachts, trawlers, container ships, aircraft carriers... A vessel designed to be a cruiser won't fit the purpose of a kayak or a cargo ship. No single design is universally superior.

This project combines two main projects into one. First is cshttp (the HTTP request parser); second is the working CMS built in "Pageless ASP.NET Web Forms Architecture".

It is an async HTTP request listener, passing down to a sync thread.

Again, the engineering pattern shown in this repository... is just ONE of the possibilities of how it can be engineered. The possibilities of patterns are only limited by one's imagination. Enjoy!

References: