SlideShare a Scribd company logo
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

PDF
ASP.NET MVC 4 Introduction
PDF
Webforms or MVC
PPT
MVC Architecture in ASP.Net By Nyros Developer
PPT
Silver Light By Nyros Developer
PPT
Model Binding In ASP.NET MVC
PPT
Introduction to ASP.NET MVC
PPTX
ASP.NET MVC4 Overview
ASP.NET MVC 4 Introduction
Webforms or MVC
MVC Architecture in ASP.Net By Nyros Developer
Silver Light By Nyros Developer
Model Binding In ASP.NET MVC
Introduction to ASP.NET MVC
ASP.NET MVC4 Overview

What's hot (20)

PPT
Asp.net mvc
PPTX
Mvc fundamental
ODP
Mvc
PPTX
SharePoint 2010 Web Content Management - The Developer Story
PPTX
Mvc framework
PPT
ASP.NET MVC Presentation
PPTX
Difference between MVC 3, 4, 5 and 6
PPTX
ASP.NET MVC for Begineers
PDF
Asp.net mvc basic introduction
PPTX
ASP .NET MVC Introduction & Guidelines
PPTX
Asp.net MVC training session
PPTX
ASP.NET MVC Presentation
PPTX
Mortal Kombat! ASP.NET MVC vs ASP.NET Webforms – ASP.NET MVC is amazing
PPTX
Introduction to mvc architecture
ODP
What is MVC?
PPTX
Mvc summary
PPTX
Introduction to ASP.NET MVC
PPTX
No brainer
PDF
Migrating to HTML5, Migrating Silverlight to HTML5, Migration Applications t...
PPTX
MVC & backbone.js
Asp.net mvc
Mvc fundamental
Mvc
SharePoint 2010 Web Content Management - The Developer Story
Mvc framework
ASP.NET MVC Presentation
Difference between MVC 3, 4, 5 and 6
ASP.NET MVC for Begineers
Asp.net mvc basic introduction
ASP .NET MVC Introduction & Guidelines
Asp.net MVC training session
ASP.NET MVC Presentation
Mortal Kombat! ASP.NET MVC vs ASP.NET Webforms – ASP.NET MVC is amazing
Introduction to mvc architecture
What is MVC?
Mvc summary
Introduction to ASP.NET MVC
No brainer
Migrating to HTML5, Migrating Silverlight to HTML5, Migration Applications t...
MVC & backbone.js
Ad

Similar to Mvc presentation (20)

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

More from MaslowB (9)

PPTX
F# for BLOBA, by brandon d'imperio
PDF
Knockout vs. angular
PDF
Js testing
PPTX
Type mock isolator
PPTX
What’s new mvc 4
PPT
A clean repository pattern in ef
PPTX
Metrics
PPTX
Type mock isolator
PPT
Metaprogramming by brandon
F# for BLOBA, by brandon d'imperio
Knockout vs. angular
Js testing
Type mock isolator
What’s new mvc 4
A clean repository pattern in ef
Metrics
Type mock isolator
Metaprogramming by brandon

Recently uploaded (20)

PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
GDG Cloud Iasi [PUBLIC] Florian Blaga - Unveiling the Evolution of Cybersecur...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Big Data Technologies - Introduction.pptx
PDF
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Machine learning based COVID-19 study performance prediction
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Approach and Philosophy of On baking technology
PDF
KodekX | Application Modernization Development
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Reach Out and Touch Someone: Haptics and Empathic Computing
GDG Cloud Iasi [PUBLIC] Florian Blaga - Unveiling the Evolution of Cybersecur...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Empathic Computing: Creating Shared Understanding
Big Data Technologies - Introduction.pptx
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
Understanding_Digital_Forensics_Presentation.pptx
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Machine learning based COVID-19 study performance prediction
Diabetes mellitus diagnosis method based random forest with bat algorithm
NewMind AI Weekly Chronicles - August'25 Week I
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
MYSQL Presentation for SQL database connectivity
“AI and Expert System Decision Support & Business Intelligence Systems”
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Approach and Philosophy of On baking technology
KodekX | Application Modernization Development

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

  • #3: http://msdn.microsoft.com/en-us/library/75x4ha6s.aspx
  • #11: http://msdn.microsoft.com/en-us/magazine/dd252940.aspx