I (and the Fubu team) get asked a lot: “What’s better about FubuMVC over ASP.NET MVC?” I really hate that question because a.) It’s not simple to answer because it’s a lot like the question “Which is better, Mac, Windows, or Linux?” b.) it puts me in the uncomfortable position of having to promote one framework over another and all the associated problems that causes (fanboi-ism, hurt feelings, framework allegiance, etc).
However, someone once asked me, “What’s so great about FubuMVC anyhow?” Now that is a much better question because I can answer it concretely without offending anyone or casting anyone else in a negative light. So I started going through the source of the various projects under the “DarthFubuMVC” umbrella account on Github and making a bunch of draft posts in a series. So far, I have two series: FubuCore and FubuMVC.
This series doesn’t have much to do with MVC or web frameworks in general. FubuCore ended up being a shared repository for cool utilities and core infrastructure stuff that we used in a number of other projects and products.
You can find the repository here: https://github.com/DarthFubuMVC/fubucore
- The Cache<TKey, TValue> Class
- Extension Methods
- Static Reflection
- Dependency Analysis with Directed Graph
- Easy Configuration
- Command-Line Binding and Usage Framework
- Model Binding (and follow-up post with more clarification)
- Stringification (you may also want to read the preface post which explains the context of this post)
This series is all about the Front Controller MVC framework we built for our usage at Dovetail. FubuMVC has taken on a more expanded role than just an MVC framework. It now includes things like validation, packaging/bottles, advanced user/role/permission authorization, advanced configuration, and a number of other helpful infrastructure-y type things that may be useful in web and non-web projects.
You can find the repository here: https://github.com/DarthFubuMVC/fubumvc