Why MVC?


Published on

This is my presentation for Developer Conference Myanmar 2013. It explains about the benefits and usages of MVC Architecture Design Pattern)

Published in: Education, Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Why MVC?

  1. 1. WHY MVC? Wayne Tun Myint (Myanmar Web Solution )
  2. 2. What is MVC? Model–view–controller A software architecture pattern which separates the representation of information from the user's interaction with it. The model consists of application data, business rules, logic, and functions. A view can be any output representation of data, such as a chart or a diagram.Multiple views of the same data are possible, such as a bar chart for management and a tabular view for accountants.
  3. 3. How MVC works!
  4. 4. How MVC Works | Page 2
  5. 5. Brief History Of MVC MVC was one of the first works to describe and implement software constructs in terms of their responsibilities. Trygve Reenskaug introduced MVC in the 1970s In the 1980s, Jim Althoff and others implemented a version of MVC . MVC was expressed as a general concept, in a 1988 article.
  6. 6. Brief History Of MVC- Page 2 The Controller, in modern applications is a module, or an intermediary section of code, that mediates communication (between the Model and View) and unifies validation. Other aspects of the MVC also evolved, but as a variant of the original concept. HMVC, MVA, MVP, MVVM, and others that adapted MVC to different contexts.
  7. 7. Father of MVC Trygve Mikkjel Heyerdahl Reenskaug (born 1930 | Age 83) is a Norwegian computer scientist and professor emeritus of the University of Oslo. He formulated the model-view-controller (MVC) pattern for Graphic User Interface (GUI) software design in 1979 while visiting the Xerox Palo Alto Research Center (PARC).
  8. 8. Some MVC Frameworks Django (Python) Rails(Ruby) Zend Framework (PHP) CodeIgniter (PHP) CakePHP(PHP)
  9. 9. Some MVC Frameworks-2 YII (PHP) Laravel(PHP) Fuel PHP(PHP) ASP.NET MVC Laravel (PHP) Symfony(PHP) Kohana(HMVC) (PHP)
  10. 10. ) WHY MVC? MVC (Model – View – Controller) is one of those concepts that only starts to make sense when you’re dealing with larger applications and/or when working on the same application with several developers. If you’ve got 3 tasks that need to be done on a certain date, you won’t feel the need to have some kind of task organization, but if you have to deal with dozens of different tasks, with various due dates you’ll start using todo-lists.
  11. 11. WHY MVC-Page 2 But when you start working with a team of people and you need to prioritize and sequence tasks, you realize simple to do-lists won’t be enough. MVC’s benefits are absolutely not restricted to large-scale, team-based development, but they become most obvious in such situations.
  12. 12. Example Project Case You made an web application/website for a flower shop owner with a small database table. it is a huge success and your client is extremely satisfied. They ask you to change the application, they want to use a different database and according to market demand they definitely need both iPhone and Android app as well. Now repeat this five times. The client keeps on asking modifications. expansions etc. These can be UI related changes and even complete backend architecture .
  13. 13. YES , YOU will be in deep shit of pains. However if you used MVC from the start you’d notice that some things would’ve been less painful And more happier
  14. 14. Why? 90% of the code for the web application and the mobile app will be the same, but instead of saving the user data to a Shared Object or through a web service, you’d be using a local DB for instance. Without MVC chances are pretty high you’ll be making modifications in a bunch of classes. The same applies to the UI for instance. Only the way it’s presented to the user is different.
  15. 15. Advantages of Using MVC More Structural More Flexible Can maintain code in better ways. More suitable for future implementations Reduce Complexity
  16. 16. Disadvantages The complexity is high to develop the applications using this pattern without learning properly. Not right suitable for extra-small applications . The isolated development process by UI authors, business logic authors and controller authors may leads to delay in their respective modules development.
  17. 17. CodeIgniter CodeIgniter is an open source rapid development web application framework, for use in building dynamic web sites with PHP. “Its goal is to enable [developers] to develop projects much faster than writing code from scratch, by providing a rich set of libraries for commonly needed tasks, as well as a simple interface and logical structure to access these libraries. First Version was released on February 28, 2006. CodeIgniter is loosely based on the popular Model-ViewController development pattern.
  18. 18. Code Igniter | Page-2 While view and controller classes are a necessary part of development under CodeIgniter, models are optional. CodeIgniter is most often noted for its speed when compared to other PHP frameworks. In a critical take on PHP frameworks in general, PHP creator Rasmus Lerdorf spoke at frOSCon in August 2008, noting that he liked CodeIgniter "because it is faster, lighter and the least like a framework.
  19. 19. Practical Code Example
  20. 20. Conclusion
  21. 21. References http://stackoverflow.com/questions/24450/what-are-the market http://deviltechie.wordpress.com/2012/03/29/why-mvc/
  22. 22. Q & A Section
  23. 23. Thank you! Email : mr.wailintun1984@gmail.com Facebook : http://www.facebook.com/waynetunmyint Linkedin :http ://www.linkedin.com/pub/wayne-tun-myint