180 likes | 304 Vues
Dive into ASP.NET MVC, a modern web application development framework that emphasizes separation of concerns through the Model-View-Controller design pattern. This guide explains the evolution of ASP.NET MVC, its structure, and its benefits over traditional WebForms. Learn how the framework enhances testability, control over markup, and user-friendly URL management. Get insights into agile development practices adopted during its creation and discover valuable resources for further exploration. Embrace the advantages ASP.NET MVC offers for building scalable and maintainable web applications.
E N D
ASP.NET MVC For Smart People Scott Galloway, Program Manager, ASP.NET Microsoft Corporation scottgal@microsoft.com http://www.mostlylucid.net http://www.twitter.com/scottgal
What is ASP.NET MVC? • A new Web Application Project type • Simply an option • Not a replacement for WebForms • Builds on top ASP.NET • Manual vs Automatic Transmission
How was it developed? • Transparently • Regular source code releases on CodePlex • Previews 1 – 5, Beta, RC1, RC2. 8 releases! • Community feedback via forums, StackOverflow, etc… • Agilely • 94% Code Coverage/1051 unit tests • Daily Triage Meetings and weekly design meetings • Small agile team
What is MVC? • A design pattern • Acronym for Model ● View ● Controller • Separation of concerns
What is MVC? Step 1 Incoming request directed to Controller Controller Request
What is MVC? Step 2 Controller processes request and forms a data Model Controller Model
What is MVC? Step 3 Model is passed to View Controller View
What is MVC? Step 4 View transforms Model into appropriate output format Controller View
What is MVC? Step 5 Response is rendered Controller View Response
Framework Goals • Frictionless Testability • Tight control over markup • User/SEO friendly URLs • Leverage the benefits of ASP.NET • Conventions and Guidance
Separation Of Concerns • Each component has one responsibility • SRP – Single Responsibility Principle • DRY – Don’t Repeat Yourself • More easily testable • Helps with concurrent development
Extensible • Replace any component of the system • Interface-based architecture • Very few sealed methods / classes • Plays well with others
WebForms are great … • Mature, proven technology • Huge Third Party Control Ecosystem • Scalable • Extensible • Familiar feel to WinForms developers
… they have problems • Abstractions aren’t very abstract • Difficult to test • Lack of control over markup • It does things you didn’t tell it to do
Resources • Phil Haack’s blog: www.haacked.com • ASP.NET MVC Site: www.asp.net/mvc • Scott Guthrie’s blog: weblogs.asp.net/scottgu • Rob Conery’s blog: blog.wekeroad.com/