Promesh.NET - an MVC Web Framework for .NET
Among the ProMesh.NET features include:
- Lightweight (<100KB) framework running on top of the ASP.NET HTTP pipeline (HttpHandler)
- Controller-based for easy implementation of the MVC pattern
- Flexible template-based rendering engine (using pure HTML files)
- Very powerful integrated testing framework for running unit tests on your web pages
- Easy mapping of parameters and other client data to typed method parameters and class members
- Flexible and easy to use form generation and postback handling
- Integrated logging and profiling
- Optional integration with the CoolStorage.NET ORM library
- Built for performance
Philippe has generously published a very nice walkthrough of using the framework as well. InfoQ had the chance to chat with Philippe about the ProMesh.NET project:
ProMesh.NET is a MVC web application framework for .NET 2.0. It is controller-driven, meaning that the framework calls controller objects which render the view. The view engine is built-in and uses standard HTML files with embedded “view logic”. It doesn’t use the ASP.NET page model in any way, but is driven by HTTP handlers and modules, which are provided by the .NET Framework.
When asked how long has ProMesh.NET been in development:
The project actually started with a very simple ASP framework written for internal use back in 1999. In 2002 it was ported to .NET but with limited features. Over the years it evolved into a full MVC framework running exclusively on .NET 2.0. After years of using it for internal projects, I decided it was time to release it to “the public”. I am a strong believer in open-source software, so I decided to release it as such.
On the need for creating ProMesh.NET:
It wasn’t really a “decision”. It just came naturally. I am pretty strict in applying the “separation of concerns”, so that’s why I wrote a small MVC framework for ASP, which evolved into ProMesh.NET. When ASP.NET first came out I took a good look at it and I decided it wasn’t what I needed, so I continued development of ProMesh.NET.
On who is using ProMesh.NET right now, Phillip explained:
ProMesh.NET has only been released in the open last week, so I only know of the projects I was personally involved in. These include some high traffic sites such as www.cartoonbase.com , www.mobileweb.be, www.lunch.be, www.autosport.be. You could also include www.register.eu and www.telito.com. These sites are still running the original MVC framework for “old” ASP.
On the over all benefits of using ProMesh.NET:
ProMesh.NET offers developers the benefit of a web application framework built from the ground up as an MVC framework. It provides a very “clean” way of creating web applications, without the problems related to the broken event model of ASP.NET Web Forms. The complete separation of view and controller logic plus the use of standard HTML templates makes the framework very easy to use, even for people not familiar with the MVC pattern.
Although developers can’t use ASP.NET controls, the framework supports creating flexible custom controls, so I suspect third-party developers will soon start developing controls for ProMesh.NET
Finally we asked Philippe what his plans were for the continued development of ProMesh.NET?:
I plan to listen to developers using the framework, and add features people want, although I don’t want it to evolve in a “Swiss Army Knife”. Future developments that are currently on my mind are dynamically loaded plugins and controls, an integrated Ajax framework (comparable to AjaxPro) and a built-in wiki engine.
Because ProMesh.NET is now open-source, I encourage developers to participate in the development of the product. It is hosted on CodePlex, so that should make it easy for developers to participate.
Last but not least: documentation has to be perfect, so this will always be high priority in the future. A wiki site will soon be created to encourage others to participate in the process of documenting the framework.
MVC frameworks implemented on the web are gaining more attention with the success and popularity of Ruby on Rails. The ASP.NET community has had little in the way of choice until recently with web frameworks like ProMesh.NET. This framework also gives developers the ability to create custom controls to produce rich web front-ends.
ProMesh.net versus Monorail