180 likes | 296 Views
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
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/