InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Promesh.NET - an MVC Web Framework for .NET

Posted by Robert Bazinet on Aug 15, 2007

Sections
Development
Topics
.NET ,
Web Frameworks
Tags
Promesh.NET ,
MVC
Philippe Leybaert recently released a Model-View-Controller (MVC) framework for creating .NET 2.0 web applications, named ProMesh.NET.  The framework was released on Codeplex under an open source license.  MVC frameworks have gained popularity lately with Ruby on Rails and most recently with the Castle Project and MonoRails, also an MVC framework.

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 by Eduardo Miranda Posted
nice by Chen Nikos Posted
  1. Back to top

    ProMesh.net versus Monorail

    by Eduardo Miranda

    I would like to see if there is any differences between Monorail and ProMesh.net. I've walked the walkthrough and I found very similar concepts.

    Eduardo Miranda

  2. Back to top

    nice

    by Chen Nikos

    I found more and more OpenSource Softwares in the .NET Framework.

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.