Sie sind auf Seite 1von 47

ASP.

NET MVC 2 Tips & Tricks

{Speaker Name}
{Role}, Headspring {email}@headspring.com @{twitter} http://Headspring.com

New community offering from Headspring

Why us?

2 years of real experience with ASP.NET MVC Book: New edition: http://manning.com/palermo2 Training: http://headspring.com
Microsft MVPs ASPInsiders

About the material

Each tip was a lesson learned the hard way during project delivery at Headspring We employ all of these techniques in every current ASP.NET MVC project.
Pharmaceuticals Law enforcement Energy Consumer retail Air travel Etc

Example application specs

Visual Studio 2010 / C# ASP.NET MVC 2 SQL Server 2008 Express (database named HeadspringExample) MvcContrib NHibernate w/ Fluent C# mappings AutoMapper StructureMap Tarantino WatiN

Functional walk-through

1. View Models

Problem: Complex Domain Model

Solution: De-normalized View-Specific Model

View-Specific Model

2. AutoMapper

Problem: Mapping code

Projection

Solution: Automapper

3. Templated Helpers

Problem: Too Much Duplication

Solution: Conventions through templates

Rich View Models

Customization

MvcContrib input builders convention engine

4. Expression-Based Helpers

Problem: Magic Strings

Solution: Refactoring-friendly helpers

5. Model Binders

Problem: Duplication in actions

Solution: Model binders

6. Controller Factories

Problem: Highly coupled classes

Solution: Enable Dependency Injection

7. Action Results

Problem: Duplicate ActionResult logic

Solution: Wrap Existing ActionResults

Reduce Duplication

Simplify Responsibilities

Small, maintainable controllers

8. View Compilation

Problem: Errors in views

Solution: Compile views

Visual Studio Integration

9. Portable Areas

Problem: copy/paste areas

Solution: Portable Areas

Wire in

10. Integrated Full-System Testing

Problem: Brittle, version-ignorant tests

Solution: integrated pseudo-DSL

http://headspringlabs.codeplex.com
http://codecampserver.codeplex.com
http://github.com/jeffreypalermo/mvc2inaction http://manning.com/palermo2

HTTP

Das könnte Ihnen auch gefallen