CSC/ECE 517 Fall 2007/wiki2 3 bp
Model-View-Controller Review of Resources
Written by Ben Parees
quick overview of mvc
The Model-View-Controller pattern, referred to as MVC in most literature, is a way of structuring code to achieve separation of concerns. In this case, the three concerns are managing the physical data, representing the data to the user, and tying the representation of the data to the physical data in such a way that it can be manipulated by the user. These three concerns are managed by:
The rest of this page provides links to websites which provide more in depth information describing MVC, examples of its usage, and specific tutorials for using MVC in Java and Ruby, along with reviews of those sites.
introductory sites
quick overviews
These sites provide a 5 minute overview of the basic concept of Model-View-Controller.
http://www.mercurytide.co.uk/whitepapers/separating-structure-presentation-and-behaviour/ Starting approximately 1/3 of the way down the page, this website gives the classic definitions of model, view, and controller. In addition, it provides a short discussion on the advantages of the MVC approach. Finally, it provides a short example of how to separate a web page into the view (done in xhtml) and the controller (done in javascript). This example is not fully fleshed out and thus not paticularly useful as a starting point for someone implementing MVC on their own, but it provides a good demonstration of what sort of things belong in the controller and which belong in the view. This lends a certain concreteness to the concepts described in the MVC definition section of the page.
http://struts.javabeat.net/tutorials/
This website provides a very short overview of MVC by defining model, view, and controller. It is a somewhat Struts centric, however the definitions are general to MVC as a whole. The bottom of the page contains a useful diagram of the MVC components. Although this diagram is labeled in terms of Struts components, it is useful and easily comprehended even by a user who is not implementing the MVC pattern using Struts. (See the Implementing MVC in Java section for web pages which discuss Struts in depth).
http://en.wikipedia.org/wiki/Model-view-controller
http://doc.trolltech.com/4.3/model-view-introduction.html
http://www.indiawebdevelopers.com/technology/java/mvcarchitecture.asp
http://www.perlmonks.org/?node_id=402070
http://msdn2.microsoft.com/en-us/library/ms978748.aspx
http://www.adobe.com/devnet/flash/articles/mv_controller/as2ess_ch18.pdf
http://www.mobilefish.com/popupwindow/mvc_song.html
http://www.mobilefish.com/tutorials/mvc/mvc.html
http://ootips.org/mvc-pattern.html
http://c2.com/cgi/wiki?ModelViewController
http://www.practicalecommerce.com/blogs/developers-diary/archives/92
http://best-practice-software-engineering.ifs.tuwien.ac.at/patterns/mvc.html
http://slash7.com/articles/2005/2/22/mvc-the-most-vexing-conundrum
http://orderedlist.com/articles/rails-and-mvc
example sites
examples of when to use mvc/how to use the parts
http://java.sun.com/blueprints/patterns/MVC.html
http://java.sun.com/blueprints/patterns/MVC-detailed.html
http://www.informit.com/guides/content.aspx?g=java&seqNum=117
http://www.codersource.net/aspnet_model_view_controller_sample.html
https://users.cs.jmu.edu/bernstdh/web/common/lectures/slides_model-view-controller_pattern.php
http://www.articlegold.com/Article/Simple-J2EE-Model-View-Controller-Type-II-Framework/6091
http://www.enode.com/x/markup/tutorial/mvc.html
http://www.csis.pace.edu/~bergin/mvc/mvcgui.html
http://www.developer.com/java/ent/article.php/3336761
http://www.slideshare.net/codeinmotion/mvc-demystified-essence-of-ruby-on-rails
how to build an mvc application
mvc in ruby - rails
http://www.onlamp.com/pub/a/onlamp/2006/12/14/revisiting-ruby-on-rails-revisited.html
http://www.devarticles.com/c/a/Ruby-on-Rails/Getting-Started-with-Ruby-on-Rails/2/
http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/
http://www.webmonkey.com/05/28/index4a.html
http://instantrails.rubyforge.org/wiki/wiki.pl
http://www.sitepoint.com/article/ruby-on-rails
mvc in java - general
http://www.oracle.com/technology/sample_code/tech/java/jsps/ojsp/mvc.html
http://javadude.com/articles/vaddmvc2/mvc2.html
http://www.leepoint.net/notes-java/GUI/structure/40mvc.html
http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc.html
http://www.uta.fi/~jl/pguibook/mvc.html
http://www.csis.pace.edu/~bergin/papers/ModelViewController.html
mvc in java - struts
http://www.ibm.com/developerworks/web/library/j-struts/
http://www.theserverside.com/tt/articles/content/StrutsFastTrack/StrutsFastTrack.pdf
http://struts.apache.org/1.x/userGuide/introduction.html
http://struts.javabeat.net/tutorials/1-introduction-to-the-apache-struts.php
http://www.roseindia.net/struts/strutsguide.shtml
additional references
Model/view/controller. There are literally hundreds of pages describing MVC on the Web. If someone wants to learn about it, what should (s)he do? Look at the first few hits in Google? I expect we can do better than that. Write a review of the MVC sites on the Web. Which are best for learning about the concept? Which have the most instructive examples? Which are best for explaining how to use the pattern in Ruby and Java? If you choose this topic, you should be sure to peruse at least several dozen sites.