SlideShare a Scribd company logo
1 of 12
Asp.net Mvc

     Brandon D’Imperio
        bdimpe@gmail.com
    Imaginarydevelopment.com
Imaginarydevelopment.blogspot.com
What’s wrong with WebForms?
•   Web Forms allow developers to rapidly create applications simply by dragging and dropping
    controls and handling page-level events for both the page and the controls on the page. This
    works well, but it’s a high-level of abstraction and many developers completely forget—or
    never learned—how the HTML layout actually works behind the scenes. As a result, it’s
    common to end up with non-validating HTML, or bloated and hard-to-manage HTML layout
    that is very designer unfriendly. Add to that a huge amount of ViewState if you don’t
    effectively manage ViewState properly and you can easily end up with pages that are much
    bigger than they need to be and slow as molasses.

•   One downside of the Web Forms framework is that behind this abstraction layer, Microsoft
    built a very complex engine that has many side effects in the Page pipeline. If you’ve ever built
    complex pages that contain many components on the page it can sometimes get very difficult
    to coordinate the event sequence for data binding, rendering, and setup of the various
    controls at the correct time in the page cycle. Do you load data in the Init, Load or PreRender
    events or do you assign values during postback events? Web Forms need to run through a
    single server-side form so they can’t easily be broken up into smaller logical units. In complex
    forms, event handlers can get very bulky with the tasks they need to handle and often in ways
    that can’t be easily refactored so you end up with code that is difficult to maintain and
    impossible to test.

     –   Rick Strahl – MVP since 1997
Webforms?
Who uses MVC?
• StackOverflow.com
   – Serves 1.4-1.5 million hits per day. (as of May, 2010)
   – A language-independent collaboratively edited question and answer
     site for programmers. Questions and answers displayed by user votes
     and tags.
   – Alexa traffic ranked 465, 451 in the US, and 212 in India
• It's no coincidence that many of the most popular web
  programming frameworks also encapsulate MVC principles:
  Django, Ruby on Rails, CakePHP, Struts, and so forth. It's also
  officially creeping into ASP.NET under the fledgling ASP.NET
  MVC project. – Jeff Atwood of CodingHorror.com May,2008
MVC vs webforms
• ASP.net MVC
   –   Enables the full control over the rendered HTML.
   –   Provides clean separation of concerns(SoC).
   –   Enables Test Driven Development (TDD).
   –   Easy integration with JavaScript frameworks.
   –   Following the design of stateless nature of the web.
   –   RESTful urls that enables SEO.
   –   No ViewState and PostBack events
        • Lightweight/faster
   – No Codebehind
• ASP.net Web Forms
   – It provides RAD development
   – Easy development model for developers coming from winform
     development.
MVC + webforms
• You can intermix the two
• Use MVC for routing, separation, more
  javascript/jQuery friendliness
• Use webforms for complex controls that you
  are attached to or are just better for the
  situation.
• Both use some T4 style-coding
What is M.V.C?
• Model – The classes which are used to store
  and manipulate state, typically in a database
  of some kind.
• View – Your application’s presentation code or
  layer
• Controller – Wires up your model to your
  View/presentation/public interface (winforms,
  web pages, web services, soap, rest, etc..)
How does it work?
Web forms flow vs. MVC flow
Asp.net MVC with routing
User does a Get or Post to the routing
system. The routing system tries to
find a route match, and creates an
instance of the appropriate controller.
Then it invokes the Action on the
controller.

The controller invokes methods on the
model, which passes back any relevant
data used in response.

The controller then usually locates the
view and renders the view using the
data from the model (in many cases
transformed or flattened in a
ViewModel or in the controller) .
Sample Layout
       • Controllers
          – Define your externally
            visible methods/URLs
       • Models
          – Your Core code +
            persistence
       • Views
          – Pages to render
       • Global.asax (not pictured)
          – Defines routes, and other
            app-startup code
References
• What’s Ailing Asp.Net Web Forms – Rick Strahl
• http://www.codinghorror.com/blog/2008/05/
  understanding-model-view-controller.html
• http://www.aspiringcraftsman.com/2007/08/i
  nteractive-application-architecture/

More Related Content

What's hot

What's hot (20)

Asp.net mvc
Asp.net mvcAsp.net mvc
Asp.net mvc
 
Mvc fundamental
Mvc fundamentalMvc fundamental
Mvc fundamental
 
Mvc
MvcMvc
Mvc
 
SharePoint 2010 Web Content Management - The Developer Story
SharePoint 2010 Web Content Management - The Developer StorySharePoint 2010 Web Content Management - The Developer Story
SharePoint 2010 Web Content Management - The Developer Story
 
Mvc framework
Mvc frameworkMvc framework
Mvc framework
 
ASP.NET MVC Presentation
ASP.NET MVC PresentationASP.NET MVC Presentation
ASP.NET MVC Presentation
 
Difference between MVC 3, 4, 5 and 6
Difference between MVC 3, 4, 5 and 6Difference between MVC 3, 4, 5 and 6
Difference between MVC 3, 4, 5 and 6
 
ASP.NET MVC for Begineers
ASP.NET MVC for BegineersASP.NET MVC for Begineers
ASP.NET MVC for Begineers
 
Asp.net mvc basic introduction
Asp.net mvc basic introductionAsp.net mvc basic introduction
Asp.net mvc basic introduction
 
ASP .NET MVC Introduction & Guidelines
ASP .NET MVC Introduction & Guidelines  ASP .NET MVC Introduction & Guidelines
ASP .NET MVC Introduction & Guidelines
 
Asp.net MVC training session
Asp.net MVC training sessionAsp.net MVC training session
Asp.net MVC training session
 
ASP.NET MVC Presentation
ASP.NET MVC PresentationASP.NET MVC Presentation
ASP.NET MVC Presentation
 
Mortal Kombat! ASP.NET MVC vs ASP.NET Webforms – ASP.NET MVC is amazing
Mortal Kombat! ASP.NET MVC vs ASP.NET Webforms – ASP.NET MVC is amazingMortal Kombat! ASP.NET MVC vs ASP.NET Webforms – ASP.NET MVC is amazing
Mortal Kombat! ASP.NET MVC vs ASP.NET Webforms – ASP.NET MVC is amazing
 
Introduction to mvc architecture
Introduction to mvc architectureIntroduction to mvc architecture
Introduction to mvc architecture
 
What is MVC?
What is MVC?What is MVC?
What is MVC?
 
Mvc summary
Mvc summaryMvc summary
Mvc summary
 
Introduction to ASP.NET MVC
Introduction to ASP.NET MVCIntroduction to ASP.NET MVC
Introduction to ASP.NET MVC
 
No brainer
No brainerNo brainer
No brainer
 
Migrating to HTML5, Migrating Silverlight to HTML5, Migration Applications t...
Migrating to HTML5,  Migrating Silverlight to HTML5, Migration Applications t...Migrating to HTML5,  Migrating Silverlight to HTML5, Migration Applications t...
Migrating to HTML5, Migrating Silverlight to HTML5, Migration Applications t...
 
MVC & backbone.js
MVC & backbone.jsMVC & backbone.js
MVC & backbone.js
 

Similar to Mvc presentation

Targeting Mobile Platform with MVC 4.0
Targeting Mobile Platform with MVC 4.0Targeting Mobile Platform with MVC 4.0
Targeting Mobile Platform with MVC 4.0
Mayank Srivastava
 
Lecture 05 - Creating a website with Razor Pages.pdf
Lecture 05 - Creating a website with Razor Pages.pdfLecture 05 - Creating a website with Razor Pages.pdf
Lecture 05 - Creating a website with Razor Pages.pdf
Lê Thưởng
 

Similar to Mvc presentation (20)

MVC Framework
MVC FrameworkMVC Framework
MVC Framework
 
Mvc3 part1
Mvc3   part1Mvc3   part1
Mvc3 part1
 
Sitecore mvc
Sitecore mvcSitecore mvc
Sitecore mvc
 
Targeting Mobile Platform with MVC 4.0
Targeting Mobile Platform with MVC 4.0Targeting Mobile Platform with MVC 4.0
Targeting Mobile Platform with MVC 4.0
 
Trinada pabolu profile
Trinada pabolu profileTrinada pabolu profile
Trinada pabolu profile
 
Mvc Brief Overview
Mvc Brief OverviewMvc Brief Overview
Mvc Brief Overview
 
Trinada pabolu profile
Trinada pabolu profileTrinada pabolu profile
Trinada pabolu profile
 
MVC architecture by Mohd.Awais on 18th Aug, 2017
MVC architecture by Mohd.Awais on 18th Aug, 2017MVC architecture by Mohd.Awais on 18th Aug, 2017
MVC architecture by Mohd.Awais on 18th Aug, 2017
 
Asp 1a-aspnetmvc
Asp 1a-aspnetmvcAsp 1a-aspnetmvc
Asp 1a-aspnetmvc
 
Aspnetmvc 1
Aspnetmvc 1Aspnetmvc 1
Aspnetmvc 1
 
4. Introduction to ASP.NET MVC - Part I
4. Introduction to ASP.NET MVC - Part I4. Introduction to ASP.NET MVC - Part I
4. Introduction to ASP.NET MVC - Part I
 
Introduction to ASP.NET MVC
Introduction to ASP.NET MVCIntroduction to ASP.NET MVC
Introduction to ASP.NET MVC
 
Getting started with MVC 5 and Visual Studio 2013
Getting started with MVC 5 and Visual Studio 2013Getting started with MVC 5 and Visual Studio 2013
Getting started with MVC 5 and Visual Studio 2013
 
SRINATH RESUME
SRINATH RESUMESRINATH RESUME
SRINATH RESUME
 
Lecture 05 - Creating a website with Razor Pages.pdf
Lecture 05 - Creating a website with Razor Pages.pdfLecture 05 - Creating a website with Razor Pages.pdf
Lecture 05 - Creating a website with Razor Pages.pdf
 
ASP.net MVC Introduction Wikilogia (nov 2014)
ASP.net MVC Introduction Wikilogia (nov 2014)ASP.net MVC Introduction Wikilogia (nov 2014)
ASP.net MVC Introduction Wikilogia (nov 2014)
 
Mvc part 1
Mvc part 1Mvc part 1
Mvc part 1
 
Aspnet mvc
Aspnet mvcAspnet mvc
Aspnet mvc
 
Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!
 
Introduction to ASP.NET MVC 1.0
Introduction to ASP.NET MVC 1.0Introduction to ASP.NET MVC 1.0
Introduction to ASP.NET MVC 1.0
 

More from MaslowB (9)

F# for BLOBA, by brandon d'imperio
F# for BLOBA, by brandon d'imperioF# for BLOBA, by brandon d'imperio
F# for BLOBA, by brandon d'imperio
 
Knockout vs. angular
Knockout vs. angularKnockout vs. angular
Knockout vs. angular
 
Js testing
Js testingJs testing
Js testing
 
Type mock isolator
Type mock isolatorType mock isolator
Type mock isolator
 
What’s new mvc 4
What’s new mvc 4What’s new mvc 4
What’s new mvc 4
 
A clean repository pattern in ef
A clean repository pattern in efA clean repository pattern in ef
A clean repository pattern in ef
 
Metrics
MetricsMetrics
Metrics
 
Type mock isolator
Type mock isolatorType mock isolator
Type mock isolator
 
Metaprogramming by brandon
Metaprogramming by brandonMetaprogramming by brandon
Metaprogramming by brandon
 

Recently uploaded

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
Victor Rentea
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Recently uploaded (20)

Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
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
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
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
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
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
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
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...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

Mvc presentation

  • 1. Asp.net Mvc Brandon D’Imperio bdimpe@gmail.com Imaginarydevelopment.com Imaginarydevelopment.blogspot.com
  • 2. What’s wrong with WebForms? • Web Forms allow developers to rapidly create applications simply by dragging and dropping controls and handling page-level events for both the page and the controls on the page. This works well, but it’s a high-level of abstraction and many developers completely forget—or never learned—how the HTML layout actually works behind the scenes. As a result, it’s common to end up with non-validating HTML, or bloated and hard-to-manage HTML layout that is very designer unfriendly. Add to that a huge amount of ViewState if you don’t effectively manage ViewState properly and you can easily end up with pages that are much bigger than they need to be and slow as molasses. • One downside of the Web Forms framework is that behind this abstraction layer, Microsoft built a very complex engine that has many side effects in the Page pipeline. If you’ve ever built complex pages that contain many components on the page it can sometimes get very difficult to coordinate the event sequence for data binding, rendering, and setup of the various controls at the correct time in the page cycle. Do you load data in the Init, Load or PreRender events or do you assign values during postback events? Web Forms need to run through a single server-side form so they can’t easily be broken up into smaller logical units. In complex forms, event handlers can get very bulky with the tasks they need to handle and often in ways that can’t be easily refactored so you end up with code that is difficult to maintain and impossible to test. – Rick Strahl – MVP since 1997
  • 4. Who uses MVC? • StackOverflow.com – Serves 1.4-1.5 million hits per day. (as of May, 2010) – A language-independent collaboratively edited question and answer site for programmers. Questions and answers displayed by user votes and tags. – Alexa traffic ranked 465, 451 in the US, and 212 in India • It's no coincidence that many of the most popular web programming frameworks also encapsulate MVC principles: Django, Ruby on Rails, CakePHP, Struts, and so forth. It's also officially creeping into ASP.NET under the fledgling ASP.NET MVC project. – Jeff Atwood of CodingHorror.com May,2008
  • 5. MVC vs webforms • ASP.net MVC – Enables the full control over the rendered HTML. – Provides clean separation of concerns(SoC). – Enables Test Driven Development (TDD). – Easy integration with JavaScript frameworks. – Following the design of stateless nature of the web. – RESTful urls that enables SEO. – No ViewState and PostBack events • Lightweight/faster – No Codebehind • ASP.net Web Forms – It provides RAD development – Easy development model for developers coming from winform development.
  • 6. MVC + webforms • You can intermix the two • Use MVC for routing, separation, more javascript/jQuery friendliness • Use webforms for complex controls that you are attached to or are just better for the situation. • Both use some T4 style-coding
  • 7. What is M.V.C? • Model – The classes which are used to store and manipulate state, typically in a database of some kind. • View – Your application’s presentation code or layer • Controller – Wires up your model to your View/presentation/public interface (winforms, web pages, web services, soap, rest, etc..)
  • 8. How does it work?
  • 9. Web forms flow vs. MVC flow
  • 10. Asp.net MVC with routing User does a Get or Post to the routing system. The routing system tries to find a route match, and creates an instance of the appropriate controller. Then it invokes the Action on the controller. The controller invokes methods on the model, which passes back any relevant data used in response. The controller then usually locates the view and renders the view using the data from the model (in many cases transformed or flattened in a ViewModel or in the controller) .
  • 11. Sample Layout • Controllers – Define your externally visible methods/URLs • Models – Your Core code + persistence • Views – Pages to render • Global.asax (not pictured) – Defines routes, and other app-startup code
  • 12. References • What’s Ailing Asp.Net Web Forms – Rick Strahl • http://www.codinghorror.com/blog/2008/05/ understanding-model-view-controller.html • http://www.aspiringcraftsman.com/2007/08/i nteractive-application-architecture/

Editor's Notes

  1. http://msdn.microsoft.com/en-us/library/75x4ha6s.aspx
  2. http://msdn.microsoft.com/en-us/magazine/dd252940.aspx