Code Monkey home page Code Monkey logo

ben.http's Introduction

Ben.Http

NuGet version (Ben.Http)

Low level ASP.NET Core example web server

An example of using the ASP.NET Core servers for a .NET web application without any of the rest of the framework (e.g. Hosting, DI, middleware etc). So you can create your own distinct opinionated framework.

Using Ben.Http

Mostly its an example to derive from.

src\Ben.Http contains and sets up the server; it is Kestrel by default, but any server deriving from 'IServer' will also work (e.g. HttpSys, IIS, etc)

HttpServer.cs contains the server that is newed up; currently set to various defaults/

HttpContext.cs contains the Request/Response context, but this can be changed to be whatever set of properties you want to expose; in whatever way you want to expose them. Generally you get the information from the server by asking the IFeatureCollection for them and they are in the namespace Microsoft.AspNetCore.Http.Features

HttpApplication.cs is the application that deals with processing the requests. This creates and disposes of the HttpContext setting its features; and in this example Task ProcessRequestAsync(HttpContext context) is abstract so an application can derive from this class and implement that one method; and the bolierplate of setting up the Request/Response context is handled for them.

Building

dotnet build -c Release will build the project.

Of note a there is a samples/PlaintextJsonRaw project that then uses this server to create an application that implements the Techempower plaintext and json tests. This is a single file server that you can run from that directory with:

dotnet run -c Release

Also there is a samples/TechEmpowerGenerators project that then uses this server plus some extension methods to create an application that implements the Techempower plaintext, json and fortunes tests in a simpler manner than the Raw. This is again a single file server:

image

You can run from that directory with:

dotnet run -c Release

And it will set up a server listening on port 8080 and responding to the paths /plaintext, /json, /db and /fortunes. You also need to pass the postgres connection string in via connection enviorment variable:

image

Have fun!

Contributing

See CONTRIBUTING.md for information on contributing to this project.

This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. For more information, see the .NET Foundation Code of Conduct.

License

This project is licensed with the MIT license.

.NET Foundation

Ben.Http is a .NET Foundation project.

Related Projects

You should take a look at these related projects:

ben.http's People

Contributors

benaadams avatar moaidhathot avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.