SlideShare a Scribd company logo
1 of 41
Download to read offline
Model View Controller
                     Design Pattern


Guided By:                            Submitted By :
Dr. Avinash Panwar                    Abhishek Yadav
                                      Shashwat S Mehta
                                      Sourabh Jain
HOW
MVC ?


WHAT’s
MVC ?



WHY
MVC ?
Overview:
 1.   Design Patterns
 2.   Why MVC
 3.   What is MVC
 4.   Alternative Patterns
 5.   Implementation Frameworks
 6.   Benefits and Disadvantages




                                   3
Problem
Without Separation of concerns a
developer has to rely and wait for
the feeds of others to complete his
tasks. Productivity --




                                      Solution
                                      With separation of concerns by
                                      MVC, he can build applications
                                      faster, Unit test them easily
                                      without any involvement of other
                                      developers. Productivity ++

                                                     4
MVC
Pattern? Architecture? Framework?




                          5
Pattern:


“ Each pattern is a three-part rule, which expresses a relation
between a certain context (design context), a certain system of
forces which occurs repeatedly in that context (recurring
design problem), and a certain software configuration which
allows these forces to resolve themselves (solution). “




                                                6
Architectural Pattern:


Fundamental structural organization for software systems.

Architectural patterns are high-level strategies that concerns large-scale
components, the global properties and mechanisms of a system.

“At the highest level, there are the architecture patterns that define the
overall shape and structure of software applications. Down a level is the
architecture that is specifically related to the purpose of the software
application. Yet another level down resides the architecture of the modules
and their interconnections. This is the domain of design patterns, packages,
components, and classes.”




                                                           7
Framework:


A software framework is a universal, reusable software platform used to
develop applications, products and solutions.




                                                         8
A Generic MVC Framework
                          9
Model
• represents an application’s data and contains the logic for accessing
  and manipulating that data

• groups related data and operations for providing a specific service

• services accessed by the controller for querying or effecting a change
  in the model state.

• The model notifies the view when a state change occurs in the model.

• The Model layer represents the part of your application that
  implements the business logic


                                                       10
View
• responsible for rendering the state of the model

• forwards user input to the controller

• View renders a presentation of modeled data

• can be used to deliver a wide variety of formats depending on your
  needs




                                                     11
Controller
• responsible for intercepting and translating user input into actions
  to be performed by the model

• responsible for selecting the next view based on user input and the
  outcome of model operations

• handles requests from users

• can be seen as managers taking care that all needed resources for
  completing a task are delegated to the correct workers



                                                      12
Example

      13
Alternatives
         14
THE
MODEL-VIEW-PRESENTER
       (MVP)
      PATTERN


               15
The Taligent Model-View-Presenter
              Pattern




                         16
Components
 • Model refers to the data and business functionality of the application

 • Selections are components which specify what portion of the data within
   the Model is to be operated upon

 • Commands are components which define the operations which can be
   performed on the data

 • View is the visual representation of the Model and is comprised of the
   screens and widgets used within an application

 • Interactors are components which address how user events are mapped
   onto operations performed on the Model

 • Presenter is a component which orchestrates the overall interaction of the
   other components within the application



                                                           17
The Dolphin Smalltalk Model-
   View-Presenter Pattern




                      18
Components

• The Model refers to the data and business functionality of the
  application.

• The View is the visual representation of the Model and is comprised
  of the screens and widgets used within an application.

• The Presenter is a component which contains the presentation
  logic which interacts with the Model.




                                                     19
The Supervising Controller Pattern




                         20
Components

• The View is the visual components used within an application such
  as screens and widgets.

• The Controller is a component which processes user events and
  the complex presentation logic within an application.




                                                   21
The Passive View Pattern




                    22
Components

• The View is the visual components used within an application such
  as screens and widgets

• The Controller is a component which processes user events and
  the presentation logic within an application




                                                   23
The
Presentation-Abstraction-Control
             (PAC)
             Pattern

                       24
25
Components

• The Presentation is the visual representation of a
  particular abstraction within the application


• The Abstraction is the business domain functionality
  within the application


• The Control is a component which maintains consistency
  between the abstractions within the system and their
  presentation to the user in addition to communicating with
  other Controls within the system


                                               26
MVC
Implementations

            27
MVC Implementation in J2EE

Used for separating business layer
functionality represented by JavaBeans or EJBs
(the model) from the presentation layer
functionality represented by JSPs (the view)
using an intermediate servlet based
controller.


                                  28
29
30
Model 1 and Model 2

In the design of Java Web applications, there are two
commonly used design models, referred to as Model 1
and Model 2




                                        31
Model 1 Architecture
• a request is made to a JSP or servlet

• JSP or servlet handles all responsibilities for the
  request

• commonly used in smaller, simple task applications

• not conducive to large-scale application development


                                             32
Model 2 Architecture
• separates the display of content from the logic used to obtain
  and manipulate the content

• requests from the client browser are passed to the controller

• controller performs any logic necessary to obtain the correct
  content for display

• places the content in the request

• view then renders the content passed by the controller


                                                33
ASP.NET MVC features
•   Separation of application tasks, testability, and test-driven development by default

•   An extensible and pluggable framework

•   powerful URL-mapping component lets you build applications that have
    comprehensible and searchable URLs

•   Support for existing ASP.NET features

•   MVC’s model works through URL routing to specific controller methods and any
    operation routes back to a specific method in the controller.




                                                                    34
GUI Frameworks
•   XPages – for IBM Lotus Notes/Domino
•   GTK+ provides models and views, while clients implement the controllers through
    signals
•   Microsoft Foundation Class Library (MFC) – called the document/view
    architecture
•   ASP.NET MVC Framework – reusing jQuery libraries and proprietary Microsoft
    Ajax libraries
•   Microsoft Composite UI Application Block – part of the Microsoft Enterprise
    Library
•   Oracle Application Development Framework – Oracle ADF
•   Java Swing
•   Adobe Flex
•   Wavemaker – open source, browser-based development tool based on MVC
•   Visual FoxExpress is a Visual FoxPro MVC framework


                                                               35
Web Frameworks
•   XForms has an integrated MVC architecture with an integral dependency graph, frees
    the programmer from specifically having to perform either push or pull operations.

•   Ruby on Rails

•   Django - A complete Python web application framework, prefers to call its MVC
    implementation MTV, for model-template-view.

•   Zend Framework - An open-source PHP 5-based framework featuring a MVC layer
    and a broad-spectrum of loosely coupled components.

•   Joomla - free and open source content management system (CMS) for publishing
    content on the World Wide Web and intranets and a MVC Web application framework
    that can also be used independently.

•   CodeIgniter - simple, light, fast, open source MVC framework for building websites
    using PHP.


                                                                36
• CakePHP - A web application framework modeled after the concepts of
  Ruby on Rails.

• ASP.NET MVC Framework

• Swing - uses a model-delegator pattern, where the view and controller
  are combined, but the model is separate

• Java Hibernate

• Spring MVC Framework

• Struts

• Java Server Faces (JSF)

• Web Dynpro for ABAP & Java
                                                       37
Benefits


 • Supports Test Driven Development


 • Supports multiple views


 • Accommodates change

                                 38
Disadvantages

 • Complexity

 • Cost of frequent updates




                              39
References:

1. A Timeless Way of Hacking: R Gabriel, in Core J2EE Patterns, Pearson Education.
2. Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides in Design Patterns:
   Elements of Reusable Object-Oriented Software,AddisonWesley Professional,
   November 10, 1994
3. Roger S Pressman in Software Engineering: A Practitioner's Approach (International
   Edition),McGraw-Hill, January 20, 2009
4. Understanding Model-View-Controller in CakePHP cookbook 2.x, Available:
   http://book.cakephp.org/2.0/en/cakephp-overview/understanding-model-view-
   controller.html
5. David Lloyd, Expresso Developer's Guide, What is MVC, Available:
   http://www.jcorporate.com/expresso/doc/edg/edg_WhatIsMVC.html
6. Wikipedia, Model View Controller, Available:
   http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
7. Microsoft ASP.NET Team, ASP.NET MVC Overview, Available:
   http://www.asp.net/mvc/tutorials/overview/asp-net-mvc-overview
8. MSDN, Model View Controller, Available http://msdn.microsoft.com/en-
   us/library/ff649643.aspx
9. John T.Emmatty, Differences between MVC and MVP for Beginners, Available:
   http://www.codeproject.com/Articles/288928/Differences-between-MVC-and-MVP-for-
   Beginners


                                                               40
Thank you !!

More Related Content

What's hot

Low code vs. No code: Which is better for web and app development?
Low code vs. No code: Which is better for web and app development?Low code vs. No code: Which is better for web and app development?
Low code vs. No code: Which is better for web and app development?Devathon
 
MVC ppt presentation
MVC ppt presentationMVC ppt presentation
MVC ppt presentationBhavin Shah
 
Introduction to MERN Stack
Introduction to MERN StackIntroduction to MERN Stack
Introduction to MERN StackSurya937648
 
MVC architecture
MVC architectureMVC architecture
MVC architectureEmily Bauman
 
Web application framework
Web application frameworkWeb application framework
Web application frameworkPankaj Chand
 
Introducing Azure Arc
Introducing Azure ArcIntroducing Azure Arc
Introducing Azure ArcMohamed Wali
 
Microservices Design Patterns | Edureka
Microservices Design Patterns | EdurekaMicroservices Design Patterns | Edureka
Microservices Design Patterns | EdurekaEdureka!
 
Asp.net mvc 5 ppt
Asp.net mvc 5 pptAsp.net mvc 5 ppt
Asp.net mvc 5 pptJavedAnsari65
 
Web Devlopment ppt.pptx
Web Devlopment ppt.pptxWeb Devlopment ppt.pptx
Web Devlopment ppt.pptxAartiVerma64
 
Model view controller (mvc)
Model view controller (mvc)Model view controller (mvc)
Model view controller (mvc)M Ahsan Khan
 
Introduction to API Led connectivity
Introduction to API Led connectivityIntroduction to API Led connectivity
Introduction to API Led connectivityDeepak Bisht
 
MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )Ahmed Emad
 
Introduction to angular with a simple but complete project
Introduction to angular with a simple but complete projectIntroduction to angular with a simple but complete project
Introduction to angular with a simple but complete projectJadson Santos
 
Introduction to spring boot
Introduction to spring bootIntroduction to spring boot
Introduction to spring bootSantosh Kumar Kar
 
MVC Architecture
MVC ArchitectureMVC Architecture
MVC ArchitecturePrem Sanil
 
Flutter presentation.pptx
Flutter presentation.pptxFlutter presentation.pptx
Flutter presentation.pptxFalgunSorathiya
 

What's hot (20)

Low code vs. No code: Which is better for web and app development?
Low code vs. No code: Which is better for web and app development?Low code vs. No code: Which is better for web and app development?
Low code vs. No code: Which is better for web and app development?
 
MVC Framework
MVC FrameworkMVC Framework
MVC Framework
 
MVC ppt presentation
MVC ppt presentationMVC ppt presentation
MVC ppt presentation
 
Introduction to MERN Stack
Introduction to MERN StackIntroduction to MERN Stack
Introduction to MERN Stack
 
MVC architecture
MVC architectureMVC architecture
MVC architecture
 
Web application framework
Web application frameworkWeb application framework
Web application framework
 
Introducing Azure Arc
Introducing Azure ArcIntroducing Azure Arc
Introducing Azure Arc
 
Microservices Design Patterns | Edureka
Microservices Design Patterns | EdurekaMicroservices Design Patterns | Edureka
Microservices Design Patterns | Edureka
 
Asp.net mvc 5 ppt
Asp.net mvc 5 pptAsp.net mvc 5 ppt
Asp.net mvc 5 ppt
 
Web Devlopment ppt.pptx
Web Devlopment ppt.pptxWeb Devlopment ppt.pptx
Web Devlopment ppt.pptx
 
Model view controller (mvc)
Model view controller (mvc)Model view controller (mvc)
Model view controller (mvc)
 
Introduction to API Led connectivity
Introduction to API Led connectivityIntroduction to API Led connectivity
Introduction to API Led connectivity
 
MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )
 
Introduction to angular with a simple but complete project
Introduction to angular with a simple but complete projectIntroduction to angular with a simple but complete project
Introduction to angular with a simple but complete project
 
Web api
Web apiWeb api
Web api
 
Introduction to spring boot
Introduction to spring bootIntroduction to spring boot
Introduction to spring boot
 
What's an api
What's an apiWhat's an api
What's an api
 
MVC Architecture
MVC ArchitectureMVC Architecture
MVC Architecture
 
Laravel ppt
Laravel pptLaravel ppt
Laravel ppt
 
Flutter presentation.pptx
Flutter presentation.pptxFlutter presentation.pptx
Flutter presentation.pptx
 

Viewers also liked

Introduction to ASP.NET MVC
Introduction to ASP.NET MVCIntroduction to ASP.NET MVC
Introduction to ASP.NET MVCKhaled Musaied
 
Creating MVC Application with backbone js
Creating MVC Application with backbone jsCreating MVC Application with backbone js
Creating MVC Application with backbone jsMindfire Solutions
 
Sprint Portlet MVC Seminar
Sprint Portlet MVC SeminarSprint Portlet MVC Seminar
Sprint Portlet MVC SeminarJohn Lewis
 
Repository Pattern in MVC3 Application with Entity Framework
Repository Pattern in MVC3 Application with Entity FrameworkRepository Pattern in MVC3 Application with Entity Framework
Repository Pattern in MVC3 Application with Entity FrameworkAkhil Mittal
 
Getting to know Laravel 5
Getting to know Laravel 5Getting to know Laravel 5
Getting to know Laravel 5Bukhori Aqid
 
Introduction to Laravel Framework (5.2)
Introduction to Laravel Framework (5.2)Introduction to Laravel Framework (5.2)
Introduction to Laravel Framework (5.2)Viral Solani
 
Desarrolla tu primera api con spring boot
Desarrolla tu primera api con spring bootDesarrolla tu primera api con spring boot
Desarrolla tu primera api con spring bootCloudAppi
 
The mHealth + Telehealth World 2014
The mHealth + Telehealth World 2014The mHealth + Telehealth World 2014
The mHealth + Telehealth World 2014WorldCongress
 
Telehealth in practice (2014)
Telehealth in practice (2014)Telehealth in practice (2014)
Telehealth in practice (2014)Marc Lange
 
From eHealth to mHealth
From eHealth to mHealthFrom eHealth to mHealth
From eHealth to mHealthWen-Pai Lu
 
Session 5 : mvc - Giáo trình Bách Khoa Aptech
Session 5 : mvc  - Giáo trình Bách Khoa AptechSession 5 : mvc  - Giáo trình Bách Khoa Aptech
Session 5 : mvc - Giáo trình Bách Khoa AptechMasterCode.vn
 
C Sharp Crash Course
C Sharp Crash CourseC Sharp Crash Course
C Sharp Crash CourseShahed Chowdhuri
 
PHP MVC Tutorial
PHP MVC TutorialPHP MVC Tutorial
PHP MVC TutorialYang Bruce
 

Viewers also liked (20)

Mvc architecture
Mvc architectureMvc architecture
Mvc architecture
 
Why Use MVC?
Why Use MVC?Why Use MVC?
Why Use MVC?
 
Introduction to ASP.NET MVC
Introduction to ASP.NET MVCIntroduction to ASP.NET MVC
Introduction to ASP.NET MVC
 
Creating MVC Application with backbone js
Creating MVC Application with backbone jsCreating MVC Application with backbone js
Creating MVC Application with backbone js
 
Sprint Portlet MVC Seminar
Sprint Portlet MVC SeminarSprint Portlet MVC Seminar
Sprint Portlet MVC Seminar
 
Repository Pattern in MVC3 Application with Entity Framework
Repository Pattern in MVC3 Application with Entity FrameworkRepository Pattern in MVC3 Application with Entity Framework
Repository Pattern in MVC3 Application with Entity Framework
 
Getting to know Laravel 5
Getting to know Laravel 5Getting to know Laravel 5
Getting to know Laravel 5
 
Struts presentation
Struts presentationStruts presentation
Struts presentation
 
Introduction to Laravel Framework (5.2)
Introduction to Laravel Framework (5.2)Introduction to Laravel Framework (5.2)
Introduction to Laravel Framework (5.2)
 
Creando APIs REST con Spring Boot
Creando APIs REST con Spring BootCreando APIs REST con Spring Boot
Creando APIs REST con Spring Boot
 
MVC Architecture
MVC ArchitectureMVC Architecture
MVC Architecture
 
Laravel 5
Laravel 5Laravel 5
Laravel 5
 
Desarrolla tu primera api con spring boot
Desarrolla tu primera api con spring bootDesarrolla tu primera api con spring boot
Desarrolla tu primera api con spring boot
 
The mHealth + Telehealth World 2014
The mHealth + Telehealth World 2014The mHealth + Telehealth World 2014
The mHealth + Telehealth World 2014
 
Telehealth in practice (2014)
Telehealth in practice (2014)Telehealth in practice (2014)
Telehealth in practice (2014)
 
From eHealth to mHealth
From eHealth to mHealthFrom eHealth to mHealth
From eHealth to mHealth
 
Session 5 : mvc - Giáo trình Bách Khoa Aptech
Session 5 : mvc  - Giáo trình Bách Khoa AptechSession 5 : mvc  - Giáo trình Bách Khoa Aptech
Session 5 : mvc - Giáo trình Bách Khoa Aptech
 
C Sharp Crash Course
C Sharp Crash CourseC Sharp Crash Course
C Sharp Crash Course
 
C sharp
C sharpC sharp
C sharp
 
PHP MVC Tutorial
PHP MVC TutorialPHP MVC Tutorial
PHP MVC Tutorial
 

Similar to MVC Seminar Presantation

Architectural Design & Patterns
Architectural Design&PatternsArchitectural Design&Patterns
Architectural Design & PatternsInocentshuja Ahmad
 
Mvc pattern and implementation in java fair
Mvc   pattern   and implementation   in   java fairMvc   pattern   and implementation   in   java fair
Mvc pattern and implementation in java fairTech_MX
 
Mobile App Architectures & Coding guidelines
Mobile App Architectures & Coding guidelinesMobile App Architectures & Coding guidelines
Mobile App Architectures & Coding guidelinesQamar Abbas
 
MVP Clean Architecture
MVP Clean  Architecture MVP Clean  Architecture
MVP Clean Architecture Himanshu Dudhat
 
Web tier-framework-mvc
Web tier-framework-mvcWeb tier-framework-mvc
Web tier-framework-mvcKashfUlHuda1
 
Web engineering - MVC
Web engineering - MVCWeb engineering - MVC
Web engineering - MVCNosheen Qamar
 
Interaction-Oriented Architecture.pptx
Interaction-Oriented Architecture.pptxInteraction-Oriented Architecture.pptx
Interaction-Oriented Architecture.pptxGodwin Monserate
 
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptxWhat Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptxQuickwayInfoSystems3
 
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptxWhat Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptxQuickwayInfoSystems3
 
software architecture
software architecturesoftware architecture
software architecturearnav gupta
 
Models used in iOS programming, with a focus on MVVM
Models used in iOS programming, with a focus on MVVMModels used in iOS programming, with a focus on MVVM
Models used in iOS programming, with a focus on MVVMAndrei Popa
 
Asp 1a-aspnetmvc
Asp 1a-aspnetmvcAsp 1a-aspnetmvc
Asp 1a-aspnetmvcFajar Baskoro
 
Mvc 130330091359-phpapp01
Mvc 130330091359-phpapp01Mvc 130330091359-phpapp01
Mvc 130330091359-phpapp01Jennie Gajjar
 
design pattern_MVC.pptx
design pattern_MVC.pptxdesign pattern_MVC.pptx
design pattern_MVC.pptxTarun710971
 

Similar to MVC Seminar Presantation (20)

Architectural Design & Patterns
Architectural Design&PatternsArchitectural Design&Patterns
Architectural Design & Patterns
 
MVC.pptx
MVC.pptxMVC.pptx
MVC.pptx
 
Mvc pattern and implementation in java fair
Mvc   pattern   and implementation   in   java fairMvc   pattern   and implementation   in   java fair
Mvc pattern and implementation in java fair
 
MVC architecture
MVC architectureMVC architecture
MVC architecture
 
Mobile App Architectures & Coding guidelines
Mobile App Architectures & Coding guidelinesMobile App Architectures & Coding guidelines
Mobile App Architectures & Coding guidelines
 
MVP Clean Architecture
MVP Clean  Architecture MVP Clean  Architecture
MVP Clean Architecture
 
Web tier-framework-mvc
Web tier-framework-mvcWeb tier-framework-mvc
Web tier-framework-mvc
 
MVC
MVCMVC
MVC
 
Web engineering - MVC
Web engineering - MVCWeb engineering - MVC
Web engineering - MVC
 
Interaction-Oriented Architecture.pptx
Interaction-Oriented Architecture.pptxInteraction-Oriented Architecture.pptx
Interaction-Oriented Architecture.pptx
 
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptxWhat Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
 
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptxWhat Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
 
software architecture
software architecturesoftware architecture
software architecture
 
Models used in iOS programming, with a focus on MVVM
Models used in iOS programming, with a focus on MVVMModels used in iOS programming, with a focus on MVVM
Models used in iOS programming, with a focus on MVVM
 
Asp 1a-aspnetmvc
Asp 1a-aspnetmvcAsp 1a-aspnetmvc
Asp 1a-aspnetmvc
 
Aspnetmvc 1
Aspnetmvc 1Aspnetmvc 1
Aspnetmvc 1
 
Mvc 130330091359-phpapp01
Mvc 130330091359-phpapp01Mvc 130330091359-phpapp01
Mvc 130330091359-phpapp01
 
design pattern_MVC.pptx
design pattern_MVC.pptxdesign pattern_MVC.pptx
design pattern_MVC.pptx
 
Design Pattern
Design PatternDesign Pattern
Design Pattern
 
Design pattern
Design patternDesign pattern
Design pattern
 

Recently uploaded

DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 

Recently uploaded (20)

DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

MVC Seminar Presantation

  • 1. Model View Controller Design Pattern Guided By: Submitted By : Dr. Avinash Panwar Abhishek Yadav Shashwat S Mehta Sourabh Jain
  • 3. Overview: 1. Design Patterns 2. Why MVC 3. What is MVC 4. Alternative Patterns 5. Implementation Frameworks 6. Benefits and Disadvantages 3
  • 4. Problem Without Separation of concerns a developer has to rely and wait for the feeds of others to complete his tasks. Productivity -- Solution With separation of concerns by MVC, he can build applications faster, Unit test them easily without any involvement of other developers. Productivity ++ 4
  • 6. Pattern: “ Each pattern is a three-part rule, which expresses a relation between a certain context (design context), a certain system of forces which occurs repeatedly in that context (recurring design problem), and a certain software configuration which allows these forces to resolve themselves (solution). “ 6
  • 7. Architectural Pattern: Fundamental structural organization for software systems. Architectural patterns are high-level strategies that concerns large-scale components, the global properties and mechanisms of a system. “At the highest level, there are the architecture patterns that define the overall shape and structure of software applications. Down a level is the architecture that is specifically related to the purpose of the software application. Yet another level down resides the architecture of the modules and their interconnections. This is the domain of design patterns, packages, components, and classes.” 7
  • 8. Framework: A software framework is a universal, reusable software platform used to develop applications, products and solutions. 8
  • 9. A Generic MVC Framework 9
  • 10. Model • represents an application’s data and contains the logic for accessing and manipulating that data • groups related data and operations for providing a specific service • services accessed by the controller for querying or effecting a change in the model state. • The model notifies the view when a state change occurs in the model. • The Model layer represents the part of your application that implements the business logic 10
  • 11. View • responsible for rendering the state of the model • forwards user input to the controller • View renders a presentation of modeled data • can be used to deliver a wide variety of formats depending on your needs 11
  • 12. Controller • responsible for intercepting and translating user input into actions to be performed by the model • responsible for selecting the next view based on user input and the outcome of model operations • handles requests from users • can be seen as managers taking care that all needed resources for completing a task are delegated to the correct workers 12
  • 13. Example 13
  • 15. THE MODEL-VIEW-PRESENTER (MVP) PATTERN 15
  • 17. Components • Model refers to the data and business functionality of the application • Selections are components which specify what portion of the data within the Model is to be operated upon • Commands are components which define the operations which can be performed on the data • View is the visual representation of the Model and is comprised of the screens and widgets used within an application • Interactors are components which address how user events are mapped onto operations performed on the Model • Presenter is a component which orchestrates the overall interaction of the other components within the application 17
  • 18. The Dolphin Smalltalk Model- View-Presenter Pattern 18
  • 19. Components • The Model refers to the data and business functionality of the application. • The View is the visual representation of the Model and is comprised of the screens and widgets used within an application. • The Presenter is a component which contains the presentation logic which interacts with the Model. 19
  • 21. Components • The View is the visual components used within an application such as screens and widgets. • The Controller is a component which processes user events and the complex presentation logic within an application. 21
  • 22. The Passive View Pattern 22
  • 23. Components • The View is the visual components used within an application such as screens and widgets • The Controller is a component which processes user events and the presentation logic within an application 23
  • 25. 25
  • 26. Components • The Presentation is the visual representation of a particular abstraction within the application • The Abstraction is the business domain functionality within the application • The Control is a component which maintains consistency between the abstractions within the system and their presentation to the user in addition to communicating with other Controls within the system 26
  • 28. MVC Implementation in J2EE Used for separating business layer functionality represented by JavaBeans or EJBs (the model) from the presentation layer functionality represented by JSPs (the view) using an intermediate servlet based controller. 28
  • 29. 29
  • 30. 30
  • 31. Model 1 and Model 2 In the design of Java Web applications, there are two commonly used design models, referred to as Model 1 and Model 2 31
  • 32. Model 1 Architecture • a request is made to a JSP or servlet • JSP or servlet handles all responsibilities for the request • commonly used in smaller, simple task applications • not conducive to large-scale application development 32
  • 33. Model 2 Architecture • separates the display of content from the logic used to obtain and manipulate the content • requests from the client browser are passed to the controller • controller performs any logic necessary to obtain the correct content for display • places the content in the request • view then renders the content passed by the controller 33
  • 34. ASP.NET MVC features • Separation of application tasks, testability, and test-driven development by default • An extensible and pluggable framework • powerful URL-mapping component lets you build applications that have comprehensible and searchable URLs • Support for existing ASP.NET features • MVC’s model works through URL routing to specific controller methods and any operation routes back to a specific method in the controller. 34
  • 35. GUI Frameworks • XPages – for IBM Lotus Notes/Domino • GTK+ provides models and views, while clients implement the controllers through signals • Microsoft Foundation Class Library (MFC) – called the document/view architecture • ASP.NET MVC Framework – reusing jQuery libraries and proprietary Microsoft Ajax libraries • Microsoft Composite UI Application Block – part of the Microsoft Enterprise Library • Oracle Application Development Framework – Oracle ADF • Java Swing • Adobe Flex • Wavemaker – open source, browser-based development tool based on MVC • Visual FoxExpress is a Visual FoxPro MVC framework 35
  • 36. Web Frameworks • XForms has an integrated MVC architecture with an integral dependency graph, frees the programmer from specifically having to perform either push or pull operations. • Ruby on Rails • Django - A complete Python web application framework, prefers to call its MVC implementation MTV, for model-template-view. • Zend Framework - An open-source PHP 5-based framework featuring a MVC layer and a broad-spectrum of loosely coupled components. • Joomla - free and open source content management system (CMS) for publishing content on the World Wide Web and intranets and a MVC Web application framework that can also be used independently. • CodeIgniter - simple, light, fast, open source MVC framework for building websites using PHP. 36
  • 37. • CakePHP - A web application framework modeled after the concepts of Ruby on Rails. • ASP.NET MVC Framework • Swing - uses a model-delegator pattern, where the view and controller are combined, but the model is separate • Java Hibernate • Spring MVC Framework • Struts • Java Server Faces (JSF) • Web Dynpro for ABAP & Java 37
  • 38. Benefits • Supports Test Driven Development • Supports multiple views • Accommodates change 38
  • 39. Disadvantages • Complexity • Cost of frequent updates 39
  • 40. References: 1. A Timeless Way of Hacking: R Gabriel, in Core J2EE Patterns, Pearson Education. 2. Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides in Design Patterns: Elements of Reusable Object-Oriented Software,AddisonWesley Professional, November 10, 1994 3. Roger S Pressman in Software Engineering: A Practitioner's Approach (International Edition),McGraw-Hill, January 20, 2009 4. Understanding Model-View-Controller in CakePHP cookbook 2.x, Available: http://book.cakephp.org/2.0/en/cakephp-overview/understanding-model-view- controller.html 5. David Lloyd, Expresso Developer's Guide, What is MVC, Available: http://www.jcorporate.com/expresso/doc/edg/edg_WhatIsMVC.html 6. Wikipedia, Model View Controller, Available: http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller 7. Microsoft ASP.NET Team, ASP.NET MVC Overview, Available: http://www.asp.net/mvc/tutorials/overview/asp-net-mvc-overview 8. MSDN, Model View Controller, Available http://msdn.microsoft.com/en- us/library/ff649643.aspx 9. John T.Emmatty, Differences between MVC and MVP for Beginners, Available: http://www.codeproject.com/Articles/288928/Differences-between-MVC-and-MVP-for- Beginners 40