3. Agenda
What is MVC?
Questions You Might be Thinking
Demonstration…
Code, code, and more code!
Questions & Answers
4. What is MVC?
Concept been around since 1979
Separation of Concerns
“Separate content from presentation and data-
processing (model) from content.” --Wikipedia
5. What is MVC?
What do I gain from ASP.NET MVC?
Clean separation of concerns
Testability & TDD
Highly extensible and pluggable
Powerful URL mapping for clean REST-ful URLs
Can leverage existing ASP.NET features
Authentication, Authorization, & Roles
Session, State Management, Output & Data Caching
Localization, etc…
Total control over the rendered View
6. What is MVC?
What do I loose from ASP.NET MVC?
ASP.NET Web Form post-back model
Dependency of View State
Initially Rich Controls may be more difficult
Tons of HTML being generated for you
Big learning curve for .NET Web Developers
7. Questions You Might Be Thinking
Will ASP.NET MVC replace ASP.NET Web
Forms?
How would I go about choosing between
using ASP.NET MVC or ASP.NET Web Forms?
Is ASP.NET MVC ready for production?
When will ASP.NET MVC be officially
released?
8. Demonstration
Pet Shop 5.0
Technologies Used
Visual Studio Team System 2008
.NET 3.5 using C# 3.0 & LINQ to SQL
ASP.NET MVC Preview 5
Microsoft SQL Server 2005 Express
jQuery v.1.2.6
Flexigrid
jGrowl
9. Sources of Inspiration
Scott Guthrie
http://weblogs.asp.net/Scottgu/
Scott Hanselman
http://www.hanselman.com/blog/
Phil Haack
http://haacked.com/
Stephen Walther
http://weblogs.asp.net/StephenWalther/
10. Come on… I know you have at least one question
that you’ve been dying to ask!
11. Questions I thought you’d ask… #1a
What is the difference between MVC & MVP
And no… I’m not referring to Microsoft’s Most
Valuable Professional (of which you can find some in
here)
12. Questions I thought you’d ask… #1b
What is the difference between MVC & MVP
MVC
Controller responsible for determining which view is
displayed in response to any action.
The view does not directly bind to the model.
The view usually will not have any logic in the code
behind.
MVP
Presenter contains the UI business logic for the view.
All actions from the view delegate to the presenter.
Tends to be a very natural pattern for achieving
separated presentation in ASP.NET Web Forms.
14. Questions I thought you’d ask… #2
What is the DRY Principle?
It means “Don’t Repeat Yourself”, but it isn’t
necessarily talking about the Copy/Paste Code
Smell… that is better described by the “Once and
Only Once” (OAOO) principle.
An example of something really DRY is XSLT…
where knowledge is not repeated.
“The DRY code philosophy is stated as ‘Every piece
of knowledge must have a single, unambiguous,
authoritative representation within a system.’”
--Wikipedia
15. Questions I thought you’d ask… #3
What is the PRG Pattern?
“…instead of returning an HTML page directly, the
POST operation returns a redirection command…
instructing the browser to load a different page
using an HTTP GET request. The result page can
then safely be bookmarked or reloaded without
unexpected side effects.” --Wikipedia
Editor's Notes
1. No, MVC will not replace Web Forms. It will only be an alternative approach for web development. Don’t be fearful that your precious post-back View State model will be taken away from you ;) 2. If you have a highly intensive user experience you may want to stay with the classic Web Form approach, however, if you find yourself in a very large enterprise you may want to consider using MVC since it provides a lot of flexibility and enables unit testing…. Something very difficult to do in a Web Form environment. 3. There are many sites that already use MVC in production, however, technically the product hasn’t been released yet. It is still in Preview 5. 4. The rumor is that MVC will be released in a month that ends in “ber”. There is no official release date that I am aware of. Since the project has been hosted on CodePlex it has had the unique experience of being tested while it is being developed. The community is helping drive the direction of the product, but with that comes a flexible delivery date. It’s done when it’s done.