ASP.NET MVC 3 and Some 4 JaxCodeCamp August 2011
Who Am I David Fekke Software Engineer DMEa Develop iOS software JaxDUG, JSSUG and JaxFusion
Alan Kay When I invented the term “Object- Oriented”, I did not have C++ in mind. I should have named it “Message- Oriented” instead of “Object-Oriented”
“C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off. “ Bjarne Stroustrup
“Never trust a computer you can't throw out a window.” Woz
80 Percent Statistic 80% software projects FAIL 80% of development is done as code maintenance 80% of statistics are completely useless
Fusebox Ruby On Rails DJango JSF Struts Grials.NET Nuke
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
.NET 1.0 introduced the Page Model and Code behind.NET 2.0 brought us Master Pages.NET 3.5 came with AJAX
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
Does not use Web Forms No Form Controls No Script Manager What is Missing
Controllers are a special class Controller Class always will have ‘Controller’ in the name Controllers contains action methods Controller Classes
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
Codeplex Nuget
twitter.com/davidfekke