ASP .NET MVC Framework

advertisement
ASP .NET MVC 3
and Some 4
JaxCodeCamp August 2011
Who Am I
• David Fekke
• Software Engineer DMEa
• Develop iOS software
• http://www.fekke.com/blog/
• JaxDUG, JSSUG and JaxFusion
Woz
“Never trust a computer
you can't throw out a
window.”
80 Percent Statistic
• 80% software projects FAIL
• 80% of development is done as
code maintenance
• 80% of statistics are completely useless
DJango
Ruby On Rails
Fusebox .NET Nuke
JSF
Struts
Grials
Whats wrong with
Web Forms in
ASP.NET?
• Web Forms lends to Spaghetti Code
• Difficult to maintain
• IDs get renamed
• Difficult to introduce Coding Standards
Tenets of
Frameworks
• Single Responsibility Principle
• Convention over Configuration
• SES and URL routing
• Good use of Design Patterns
•
•
Work within Test Driven Development
(TDD)
Enterprise Scalable Web Applications
• MVC Design Pattern
• Separation of Concerns
• DRY - Don’t Repeat Yourself
• Better concurrent development
MVC stands for
Model
View
Controller
• New Project Types in VS2008, 2010
• Not replacing Web Forms
• Built on top of ASP .NET
• Automatic vs. Manual
What is Missing
• Does not use Web Forms
• No Form Controls
• No Script Manager
Controller Classes
• Controllers are a special class
• Controller Class always will have
‘Controller’ in the name
• Controllers contains action methods
Views
• Views are simple
• Use ViewData, ViewModel, ViewBag
• JQuery libs included
• Partial Views
• Html helper class
Model
• Anything you want
• Enterprise Framework
• ADO .NET
• NHibernate
• LINQ
• Entity Framework
Testing
• Framework built for Unit Testing
• Test Suite, NUnit or any other test
framework
Routing
• Friendly URLs
• /products.aspx?categoryid=8
• /products/puppies
• Search Engine Safe (SES)
ASP.NET MVC 3
• Razor View engine
• Better Binding and Model Validation
• Unobtrusive Javascript
• Hooks for Dependency Injection
• Nuget!
Razor
Model Validation
Unobrusive JavaScript
Dependency Resolver
Insert favorite DI framework here
Demo
ASP.NET MVC 4
Whats Next?
MVC 4 Roadmap
• Recipes (Super Scaffolding)
• Mobile Support
• Template changes
• AsycControllers (C# 5 asynchronous)
• CSS & Javascript bundling
• WebAPI
Orchard Project
• .NET Sponsored Open Source Project
• Content Management System
• Built on MVC 3
• NHibernate
• Project Castle
• Autofac
• http://asp.net/mvc
• Codeplex
• http://weblogs.asp.net/scottgu/
•
http://bit.ly/mvc-ebook
•
http://bit.ly/mvcmusicstore
•
Nuget
• davidfekke@gmail.com
• http://www.fekke.com/blog/
• twitter.com/davidfekke
Download