17
Advanced ASP.NET MVC 2 Brad Wilson http://bradwilson.typepad.com/ [email protected] @bradwilson

Advanced ASP.NET MVC 2 - Brad Wilson · Validation • Automatic validation during model binding • Extensible validation & metadata API • Server side: DataAnnotations attributes

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Advanced ASP.NET MVC 2 - Brad Wilson · Validation • Automatic validation during model binding • Extensible validation & metadata API • Server side: DataAnnotations attributes

Advanced ASP.NET MVC 2

Brad Wilsonhttp://bradwilson.typepad.com/

[email protected]@bradwilson

Page 2: Advanced ASP.NET MVC 2 - Brad Wilson · Validation • Automatic validation during model binding • Extensible validation & metadata API • Server side: DataAnnotations attributes

What’s new in MVC 2?In 10 minutes or less

Page 3: Advanced ASP.NET MVC 2 - Brad Wilson · Validation • Automatic validation during model binding • Extensible validation & metadata API • Server side: DataAnnotations attributes

Targeting

Out of band installer

.NET 3.5 SP1

Ships in the box

.NET 3.5 SP1.NET 4

Not part of the .NET Framework

Page 4: Advanced ASP.NET MVC 2 - Brad Wilson · Validation • Automatic validation during model binding • Extensible validation & metadata API • Server side: DataAnnotations attributes

Strongly-Typed UI Helpers

• Overrides for existing UI helpers

• Use expressions based on models

Html.TextBox("FirstName")Html.TextBoxFor(m  =>  m.FirstName)

Page 5: Advanced ASP.NET MVC 2 - Brad Wilson · Validation • Automatic validation during model binding • Extensible validation & metadata API • Server side: DataAnnotations attributes

Validation

• Automatic validation during model binding

• Extensible validation & metadata API

• Server side: DataAnnotations attributes

• Client side: ASP.NET Ajax 4

• 3rd Party: Castle Validator, EntLib, etc.

Page 6: Advanced ASP.NET MVC 2 - Brad Wilson · Validation • Automatic validation during model binding • Extensible validation & metadata API • Server side: DataAnnotations attributes

Dynamic Scaffolding

+

=

Page 7: Advanced ASP.NET MVC 2 - Brad Wilson · Validation • Automatic validation during model binding • Extensible validation & metadata API • Server side: DataAnnotations attributes

Dynamic Scaffolding• Automatic display and editing

• HTML helpers

• Customizable by controller, area, & site

• Built-in templates:Text (single & multi-line), password, decimal, boolean (2- and 3-state), hidden, HTML, e-mail address, URL, collection, complex object

Page 8: Advanced ASP.NET MVC 2 - Brad Wilson · Validation • Automatic validation during model binding • Extensible validation & metadata API • Server side: DataAnnotations attributes

Areas

• Organize a large application into multiple logical areas

• Directory structure that mimics project conventions (Controllers, Models, Views)

• Automatic route registration

Page 9: Advanced ASP.NET MVC 2 - Brad Wilson · Validation • Automatic validation during model binding • Extensible validation & metadata API • Server side: DataAnnotations attributes

RenderAction

• Alternative to RenderPartial

• Executes independent action

• [ChildActionOnly]

• Comparable to user controls in WebForms

• Some action filter limitations

Page 10: Advanced ASP.NET MVC 2 - Brad Wilson · Validation • Automatic validation during model binding • Extensible validation & metadata API • Server side: DataAnnotations attributes

AsyncController• Helps build scalable sites

• Non-blocking calls to external services or inherently parallelizable algorithms

• Async Event Pattern:

   ActionAsync    ActionCompleted

Page 11: Advanced ASP.NET MVC 2 - Brad Wilson · Validation • Automatic validation during model binding • Extensible validation & metadata API • Server side: DataAnnotations attributes

Miscellany• ASP.NET Ajax 4, jQuery 1.4.1,

jQuery Validation 1.6

• Empty project template

• Code snippets

• ASP.NET 4 support <%:  %> auto-encoding syntax ViewPage<dynamic> for untyped views

Page 12: Advanced ASP.NET MVC 2 - Brad Wilson · Validation • Automatic validation during model binding • Extensible validation & metadata API • Server side: DataAnnotations attributes

demo

PUT and DELETE& Resource Routing

Page 13: Advanced ASP.NET MVC 2 - Brad Wilson · Validation • Automatic validation during model binding • Extensible validation & metadata API • Server side: DataAnnotations attributes

demo

CustomizingStatic Scaffolding

Page 14: Advanced ASP.NET MVC 2 - Brad Wilson · Validation • Automatic validation during model binding • Extensible validation & metadata API • Server side: DataAnnotations attributes

demo

CustomizingDynamic Scaffolding

Page 15: Advanced ASP.NET MVC 2 - Brad Wilson · Validation • Automatic validation during model binding • Extensible validation & metadata API • Server side: DataAnnotations attributes

demo

Custom Server- andClient-Side Validation

Page 16: Advanced ASP.NET MVC 2 - Brad Wilson · Validation • Automatic validation during model binding • Extensible validation & metadata API • Server side: DataAnnotations attributes

demo

Async Controller(Parallel Twitter Search)

Page 17: Advanced ASP.NET MVC 2 - Brad Wilson · Validation • Automatic validation during model binding • Extensible validation & metadata API • Server side: DataAnnotations attributes

Q&A andThank You!

http://[email protected]

@bradwilson