Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Recently I've been reading some blog posts regarding MVC and how it doesn't fit the web. I've learned about alternative patterns like the RMR Architecture.

I'm curious what other patterns people are using on the web besides MVC? Also, if there is a framework that implements the pattern, please post a link to it.

share|improve this question

closed as too broad by gnat, MichaelT, Kilian Foth, durron597, GlenH7 Oct 20 '15 at 17:37

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

Are you wanting replacements for MVC such as MVVM or are you wanting to know of other design patterns used in web development? The question could be interpreted either way and I'm not sure if you intended for both interpretations as the answers would be rather different in each case. – JB King Apr 12 '11 at 23:06
I'm mainly wanting to know about other design patterns used in web development. – TaylorOtwell Apr 12 '11 at 23:11
Actually, I'm looking for replacements for MVC. Sorry, was'nt on the same page at first. – TaylorOtwell Apr 12 '11 at 23:38
Wow - its nice to see that other people have been feeling the same way. MVC doesn't quite fit the web and when you are new to programming/OOP (but experienced in the web) it leads to much confusion when giving credence to best practices that derive from the desk-top. – JW01 Jul 8 '11 at 17:34
RWR simply coalesces the M and the C in MVC. MVC does "fit the web" and can be used to in RESTful ways. RWR is essentially a re-branding of the Supervising Controller pattern. – alphadogg Nov 4 '11 at 17:08
up vote 5 down vote accepted

I'm glad to see this posted.

Paul James (author of one of your links) actually has the Tonic PHP framework: Which is quite nice and lightweight.

There is also the Recess Framework, which is a RESTful approach:

You may also be interested in flourishlib, a non-mvc un-framework.

I personally like the philosophy behind scala/lift approach:

Lift is different [from MVC]. For HTML requests, Lift loads the view first and builds your page from the view. Lift also supports REST style requests for non-HTML data. (See 11 on page 1↑) “Why?” Because complex HTML pages rarely contain a dominant piece of logic... a single controller... but contain many different components. Some of those components interact and some do not. In Lift, you define the collection of components to be rendered in the resulting HTML page in the view.

I spent many years building C++ backend apps with a copy of GoF by my side, and coming into pure web development, I naturally went straight to an MVC framework... As the months went by however, I found myself gravitating to a more procedural (gasp!) style, with a some classes thrown together to keep me DRY. And I stopped using frameworks and went with Rasmus's No-Framework framework style for separation of concerns.

I'm eager to give the Lift approach a try, but have been keeping too busy.

share|improve this answer

Here would be a couple of possible ideas to consider:

One could try to argue that the initial Web Forms tried to be close to a VC of MVC with the code behind and the markup in separate files but I'm not sure how far down that rabbit hole I'd want to go.

share|improve this answer
I think I misunderstood your first comment. I am looking for replacements / alternatives to MVC as a whole. – TaylorOtwell Apr 12 '11 at 23:38
Please don't use Web Forms, it is far worse than MVC. – ryanzec Apr 13 '11 at 11:04

Not the answer you're looking for? Browse other questions tagged or ask your own question.