Frequently Asked Questions
Is this a toy or production-ready ?
I've been working in web application development for the past 20 years. SimpleW is the result of experiments, successes, failures, and lessons learned. It covers my own needs, and I've been using it in all my SaaS products for the last 5 years. All core components are production-ready.
Why open-source this tool ?
Because I strongly believe in open source, and I use open-source software every day. It's simply a matter of principle.
How to contribute ?
Github is just a mirror. Ping me, if your code is interesting and still MIT license, I will pull from your repo.
Do I need the ASP.NET runtime ?
Hell no. SimpleW targets the standard .NET runtime : no ASP.NET overhead, no bloat. That said, if you want to run both side by side, nothing stops you from using the ASP.NET runtime. SimpleW will work just fine.
Why do you hate ASP.NET Core ?
I don't hate it, but I don't like it (see the paragraph about Why this library exists).
Do you like Kestrel ?
Kestrel is an awesome server. I just want a serious alternative to its hegemony.
Why the DI in SimpleW is provided as a package ?
When people mention DI, they’re usually referring to the one in ASP.NET Core. I really deeply hate how dependency injection works in ASP.NET Core. I dislike how the framework resolves the entire dependency graph recursively and instantiates everything through a DI container :
- I’m not a fan of the magic instantiation model where objects are created implicitly by the framework (except the controller itself)
- It tends to hide the actual object graph, which can make the execution flow harder to understand and debug
- It usually introduces a fair amount of boilerplate and configuration for relatively simple use cases
That said, I understand that, to ease migration from ASP.NET, I need to provide some of its features. So DI is only available through a dedicated package, and it doesn’t pollute the core.
Minimal API or Controller architecture ?
To my opinion, minimal-api is good for prototyping or for a showcase. No only it has less options than the controller but it simply does not scale. Always prefer the controller architecture when you have more than ten routes.
What is the primary goal of SimpleW ?
It's in the name : simplicity first !
I embrace the KISS principle, whether on the API side or on the developer side. In other words, not only should users have a simple way to use SimpleW, but its source code should also be easy to read.
"Blazingly Fast" slogan ?
I admit that nowadays almost every open-source project overuses the word blazing in its description. But when it is actually true (see performance comparisons or TechEmpower results), then it deserves to be used.
Support .NET Framework
I don't want to support .NET Framework. Just update your dying runtime !
Addons ?
I want to keep the core simple and lightweight so that :
- The code can be reviewed by a developer in a few hours
- Or fully ingested (and reasoned about) by an AI in a few seconds
Addons are the place for everything that does not belong in the core. Also, a product is much easier to adopt when there is a healthy ecosystem around it.
That's my philosophy
How to use SimpleW ?
I spent a crazy amount of time writing documentation. Please, RTFM
I still have questions ?
If you still have questions:
- open a github issue
- ping me on Discord
- send me a email
...and I'll take a look.