What are the alternative "design methods" to the Model View Controller? MVC seems to be popular (SO was built with it, I know that much) but is it the only method used?
MVC is part of a greater group of design patterns. I have no idea how much experience you have, so I'm not sure how to target this response. I'm a .NET programmer, but I found the Java book Head First Design Patterns extremely helpful. Design patterns are usually broken into groups with other patterns that help solve similar problems.
I also found the Data Object Factory website quite helpful as well. You should look around for some resources in your favorite language.
One of the best write-ups of several different Interactive Application Architecture Patterns out there, is this very detailed and well-researched blog-post. It covers Model-View-Controller, three different flavors of Model-View-Presenter, several different flavors of Presentation-Abstraction-Control, Supervising Controller, Passive View and Hierarchical MVC.
Another interesting pattern is the Presenter First pattern by Atomic Objects. It's not just a Design Pattern, it's also a Process Pattern. IOW: the name "Presenter First" is not arbitrary, it actually describes a development process, in which the Presenter gets written first, driving the design of the rest of the system.
MVC is an architectural pattern. These are the other Architectural patterns you can try (from Wikipedia):
- Layers
- Multi-tier Architecture
- Presentation Abstraction Control (PAC)
- Model View Presenter (MVP)
- Model View ViewModel (MVVM)
- Pipeline
- Implicit Invocation
- Blackboard System
- Peer-to-Peer
- Service Oriented Architecture (SOA)
- Naked Objects
These are available here in Wikipedia.
DCI - "Data, Communication and Interaction"
http://www.antonioshome.net/kitchen/nbdci/index.php#dci-introduction