MVC is a design
pattern. It can arguably be categorised as a coding pattern (like most of the GoF patterns) or as an architectural pattern. But - MVC is still a pattern. It is not architecture (although it can be used in an architecture).
What is a framework? In my view, 'framework' is a widely over-used
word. Whenever someone puts together a few classes, then it is labelled a 'framework'. This is misleading. A framework is intended to be a particular arrangement of classes that define a certain set of interactions with well-defined extension points. A framework is a reusable design of part of a system, that can be used as the basis in new applications. A framework cannot be used as is - it must be extended and integrated into a real application.
Users of a framework instantiate the framework by 'filling in' the missing parts or extending the appropriate classes to achieve an end result. A framework acts as a useful starting point around which to build an application. In this way, a framework will usually define some (implicit or explicit) architecture, by virtue of the assumed interactions.
Struts is a good example of a framework. It defines a set of interactions, and an overall design or form for building Web applications. However, you can only use Struts by extending and instantiating the framework (by writing your own Actions and configuring the runtime XML descriptors). Struts makes use of an MVC pattern, but it is more than that.
A framework makes use of design patterns. Some frameworks make use of a single design pattern to the extent that the difference becomes less clear. This is I think why Struts is often described (even on the site) as MVC.
This is only my take on this. I have seen endless discussions of frameworks - what it is and what it is not. It reminds me of the 'what is a component' discussions. These will never end!
regards,
paul.
P.S Here is an interesting paper on frameworks, and how they can be developed. A 'pattern language' for frameworks...
http://st-www.cs.uiuc.edu/users/droberts/evolve.html [ October 18, 2002: Message edited by: Paul Newton ]