CSC/ECE 517 Fall 2007/wiki2/3 rl: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
 
(25 intermediate revisions by 2 users not shown)
Line 1: Line 1:
''Wiki Topic: 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.''
== Model View Controller ==
== Model View Controller ==


"Model-view-controller (MVC) is an architectural pattern used in software engineering. In complex computer applications that present a large amount of data to the user, a developer often wishes to separate data (model) and user interface (view) concerns, so that changes to the user interface will not affect data handling, and that the data can be reorganized without changing the user interface. The model-view-controller solves this problem by decoupling data access and business logic from data presentation and user interaction, by introducing an intermediate component: the controller."  Taken from [http://en.wikipedia.org/wiki/Model-view-controller Wikipedia]


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.
== Best Sites for Learning the Model View Controller Concept ==
We have compiled a list of the following sites to introduce the Model View Controller concept.  Model View Controller can be applied to a broad range of applications and we hope the following sites will give you insight into this pattern.


#[http://java.sun.com/blueprints/patterns/MVC-detailed.html http://java.sun.com/blueprints/patterns/MVC-detailed.html] : This is a very brief introduction to the MVC concept, ideal if you are in a hurry :). I really like the illustration they used, it delimits the responsibilities of the components very well.  Discusses a few Java and web technologies, but no prior knowledge of these is necessary.
#[http://ootips.org/mvc-pattern.html http://ootips.org/mvc-pattern.html] : Nicely written introduction; however, it has ascii-art diagrams.
#[http://www.oreillynet.com/onjava/blog/2003/07/new_way_to_learn_mvc_view_a_si.html http://www.oreillynet.com/onjava/blog/2003/07/new_way_to_learn_mvc_view_a_si.html] : The most innovative way to learn about MVC, through a song. Yes you heard it right, I would recommend this to everyone just because of the hilarious lyrics. Enjoy!  (Be sure to press "Listen" and not the "Download this song" link.)
#[http://www.adobe.com/devnet/flash/articles/mv_controller.html http://www.adobe.com/devnet/flash/articles/mv_controller.html] : A fantastic article that details the three components of MVC, benefits of the pattern, how the classes of MVC communicate, and class responsibilities.
#[http://www.perlmonks.org/?node_id=402070 http://www.perlmonks.org/?node_id=402070] : An easy introduction to MVC with a handy sequence diagram example.


== Best Sites for Model View Controller Examples ==
Sometimes seeing a few examples can be really helpful, so here they are:


== Reviews of Fabulous Websites ==
#[http://www.enode.com/x/markup/tutorial/mvc.html http://www.enode.com/x/markup/tutorial/mvc.html] : This is an awesome introduction to the concept. Short, sweet and to the point explained with the help of a contrived spinner example. This site does not give many details but is really good to get you started.
#[http://csis.pace.edu/~bergin/mvc/mvcgui.html http://csis.pace.edu/~bergin/mvc/mvcgui.html] : This article is written very well. It gives a detailed example of a temperature gauge, complete with source code in Java. I especially like it when the author explains how the components are interconnected.  It really helps in understanding the communication between the model, view and controller, as introduced in many of the MVC concept websites above.
#[http://www.caucho.com/articles/jsp_templates.xtp http://www.caucho.com/articles/jsp_templates.xtp] : An extremely detailed example of how to build a simple guestbook in JSP using the MVC pattern.
#[http://www.informit.com/guides/content.aspx?g=java&seqNum=117&rl=1 http://www.informit.com/guides/content.aspx?g=java&seqNum=117&rl=1] : Complete code example using Servlets as the controller, JSP files as the view, and JavaBeans as the model.


== Best Sites for How to Use the Pattern in Ruby and Java==
Ruby on Rails has built-in support for Model View Controller.  In fact, it is impossible to write a Rails application without following the pattern.  The Ruby links below provide an introduction to writing rails applications and they each have a section dedicated to MVC. 
#[http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/ http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/] : This article gives the details on how to utilize the built-in features of Ruby on Rails to create a web application using MVC.
#[http://rails.homelinux.org/ http://rails.homelinux.org/] : Four Days on Rails is a 40 page pdf that takes you through learning the basics of rails.  It includes both a description and code example for the model, view, and controller.


== Best Sites for Learning the Model View Controller Concept ==
However, since Java does not have built-in support for Model View Controller, you must design your Java applications keeping MVC in mind. The following links detail the steps required.
#[http://java.sun.com/blueprints/patterns/MVC-detailed.html http://java.sun.com/blueprints/patterns/MVC-detailed.html] : This is a very brief introduction to the MVC concept, ideal if you are in a hurry :). I really like the illustration they have used, it delimits the responsibilities of the components very well.
#[http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch5.html http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch5.html] : This is the design document for the pet store sample that comes built-in with Java EE. It goes into a lot of detail about how the MVC was used to design this sample. This page provides an excellent resource to understand the benefits of using patterns while working on a project's architecture. It bridges the gap between the theoretical concepts of the pattern and its practical implementations.
#[http://ootips.org/mvc-pattern.html http://ootips.org/mvc-pattern.html] : Nicely written introduction however it has ascii-art diagrams.
#[http://www.oreillynet.com/onjava/blog/2003/07/new_way_to_learn_mvc_view_a_si.html http://www.oreillynet.com/onjava/blog/2003/07/new_way_to_learn_mvc_view_a_si.html] : The most innovative way to learn about MVC, through a song. Yes you heard it right, I would recommend this to everyone just because of the hilarious lyrics. Enjoy
 
== Best Sites for Model View Controller Examples ==
#[http://www.enode.com/x/markup/tutorial/mvc.html http://www.enode.com/x/markup/tutorial/mvc.html] : This is an awesome introduction to the concept. Short, sweet and to the point explained with the help of a contrived spinner example. This site does not give much details but is really good to get you started.
#[http://csis.pace.edu/~bergin/mvc/mvcgui.html http://csis.pace.edu/~bergin/mvc/mvcgui.html] : This article is written very well. It gives a detailed example of a temperature gauge, complete with source code in Java. I especially like it when the author explains how the components are interconnected, it really helps in understanding the communication between the model view and controller, as introduced in many of the MVC concept websites above.
 
== Best Sites for How to Use the Pattern in Ruby and Java ==
#[http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch5.html http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch5.html] : This is the design document for one of the samples that come in built with Java EE. It goes into a lot of detail about how the MVC was used to design this sample.
#[http://cristobal.baray.com/indiana/projects/mvc.html http://cristobal.baray.com/indiana/projects/mvc.html] : A detailed introduction to the use of MVC with a Java view point which spans several pages, complete with source code. Warning: This site throws many pop ups, so keep your pop up blocker handy.
#[http://cristobal.baray.com/indiana/projects/mvc.html http://cristobal.baray.com/indiana/projects/mvc.html] : A detailed introduction to the use of MVC with a Java view point which spans several pages, complete with source code. Warning: This site throws many pop ups, so keep your pop up blocker handy.
== Sites that Suck ==
This will be deleted once we're done.... Include sites you've reviewed so we're not double reviewing.
#[http://www.site.uottawa.ca:4321/oose/index.html#MVC http://www.site.uottawa.ca:4321/oose/index.html#MVC]: Its very brief, more like a bundle of definitions, wont help in any kind of understanding
#[http://st-www.cs.uiuc.edu/users/smarch/st-docs/mvc.html http://st-www.cs.uiuc.edu/users/smarch/st-docs/mvc.html] : This one started off very well and I was about to put it into a good one for the concept but then it later delves into the details of mvc through a very small talk'y perspective, i dont think i can make much sense of it
#[http://www.themolehill.com/index.php/2006/08/14/beginners-guide-starting-with-the-model/ http://www.themolehill.com/index.php/2006/08/14/beginners-guide-starting-with-the-model/] : I was trying to find a ruby introduction to MVC, but this one is more like a introduction to rails.

Latest revision as of 21:56, 28 October 2007

Wiki Topic: 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.

Model View Controller

"Model-view-controller (MVC) is an architectural pattern used in software engineering. In complex computer applications that present a large amount of data to the user, a developer often wishes to separate data (model) and user interface (view) concerns, so that changes to the user interface will not affect data handling, and that the data can be reorganized without changing the user interface. The model-view-controller solves this problem by decoupling data access and business logic from data presentation and user interaction, by introducing an intermediate component: the controller." Taken from Wikipedia

Best Sites for Learning the Model View Controller Concept

We have compiled a list of the following sites to introduce the Model View Controller concept. Model View Controller can be applied to a broad range of applications and we hope the following sites will give you insight into this pattern.

  1. http://java.sun.com/blueprints/patterns/MVC-detailed.html : This is a very brief introduction to the MVC concept, ideal if you are in a hurry :). I really like the illustration they used, it delimits the responsibilities of the components very well. Discusses a few Java and web technologies, but no prior knowledge of these is necessary.
  2. http://ootips.org/mvc-pattern.html : Nicely written introduction; however, it has ascii-art diagrams.
  3. http://www.oreillynet.com/onjava/blog/2003/07/new_way_to_learn_mvc_view_a_si.html : The most innovative way to learn about MVC, through a song. Yes you heard it right, I would recommend this to everyone just because of the hilarious lyrics. Enjoy! (Be sure to press "Listen" and not the "Download this song" link.)
  4. http://www.adobe.com/devnet/flash/articles/mv_controller.html : A fantastic article that details the three components of MVC, benefits of the pattern, how the classes of MVC communicate, and class responsibilities.
  5. http://www.perlmonks.org/?node_id=402070 : An easy introduction to MVC with a handy sequence diagram example.

Best Sites for Model View Controller Examples

Sometimes seeing a few examples can be really helpful, so here they are:

  1. http://www.enode.com/x/markup/tutorial/mvc.html : This is an awesome introduction to the concept. Short, sweet and to the point explained with the help of a contrived spinner example. This site does not give many details but is really good to get you started.
  2. http://csis.pace.edu/~bergin/mvc/mvcgui.html : This article is written very well. It gives a detailed example of a temperature gauge, complete with source code in Java. I especially like it when the author explains how the components are interconnected. It really helps in understanding the communication between the model, view and controller, as introduced in many of the MVC concept websites above.
  3. http://www.caucho.com/articles/jsp_templates.xtp : An extremely detailed example of how to build a simple guestbook in JSP using the MVC pattern.
  4. http://www.informit.com/guides/content.aspx?g=java&seqNum=117&rl=1 : Complete code example using Servlets as the controller, JSP files as the view, and JavaBeans as the model.

Best Sites for How to Use the Pattern in Ruby and Java

Ruby on Rails has built-in support for Model View Controller. In fact, it is impossible to write a Rails application without following the pattern. The Ruby links below provide an introduction to writing rails applications and they each have a section dedicated to MVC.

  1. http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/ : This article gives the details on how to utilize the built-in features of Ruby on Rails to create a web application using MVC.
  2. http://rails.homelinux.org/ : Four Days on Rails is a 40 page pdf that takes you through learning the basics of rails. It includes both a description and code example for the model, view, and controller.

However, since Java does not have built-in support for Model View Controller, you must design your Java applications keeping MVC in mind. The following links detail the steps required.

  1. http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch5.html : This is the design document for the pet store sample that comes built-in with Java EE. It goes into a lot of detail about how the MVC was used to design this sample. This page provides an excellent resource to understand the benefits of using patterns while working on a project's architecture. It bridges the gap between the theoretical concepts of the pattern and its practical implementations.
  2. http://cristobal.baray.com/indiana/projects/mvc.html : A detailed introduction to the use of MVC with a Java view point which spans several pages, complete with source code. Warning: This site throws many pop ups, so keep your pop up blocker handy.