1. Zhiming Jiang
    1. @lanvige
    2. lanvige@gmail.com
  2. URL Routing
    1. Rule
    2. Extented Routing
  3. MVC Role
    1. Model
      1. Validation
      2. Model Binding
      3. Validation
    2. Controller Action
      1. Receiving Input
        1. QueryString
        2. Request.Form
        3. FormCollection
        4. Custome(IModelBinding)
      2. Async Action
      3. Filter
        1. Level
          1. Controller
          2. Action
        2. IActionFilter
          1. OnActionExcuting
          2. OnActionExcuted
        3. IResultFilter
          1. OnResultExecuting
          2. OnResultExecuted
        4. IAuthorizationFilters
          1. OnAuthorization
        5. IExceptionFilter
          1. OnException
        6. Order
        7. ActionFilterAttribute
        8. OutputCacheAttribute
        9. AuthorizeAttribute
        10. ValidateInputAttribute
        11. ValidateAntiforgeryTokenAttribute
        12. HandleErrorAttribute
        13. Class hierarchy of ASP.NET MVC’s built-in filter
        14. FilterAttribute
      4. Producing Output
        1. Action Result
          1. ViewResult
          2. ContentResult
          3. RedirectResult
          4. JsonResult
          5. JavaScriptResult
          6. EmptyResult
          7. FileResult
          8. FileContentResult
          9. FilePathResult
          10. FileStreamResult
        2. TempData
        3. View Data
        4. PartialView
        5. View Model
      5. How defines
        1. End with the word Controller
        2. Inherit from System.Web.Mvc.Controller (or implement IController
        3. Contain public methods that return ActionResult
    3. View
      1. ViewEngine
      2. ViewPage
        1. StrongType
      3. View Data
      4. ViewModel
      5. HTML Helper
        1. RenderPartial
      6. Using MasterPage
      7. Partial views
      8. Form Posting
      9. Validation and Error Reporting
  4. Customizing & Extending
    1. Extending URL Routing
    2. Custom ControllerFactory
    3. Leveraging IoC for Controllers
    4. Extending the Controller & Action
    5. Custom View Engine
    6. Custom T4 Templates
  5. Introduction
    1. What's ASP.Net MVC
    2. MVC Pattern
      1. Model
      2. View
      3. Controller
    3. Why ASP.Net MVC
      1. Full control over HTML
      2. Full control over URLs
      3. Better separation of concerns
      4. Extensibility
      5. Testability
    4. Differents
      1. 1
        1. REST/POST
        2. Postback
      2. 2
        1. Controller
        2. Page and control lifecycle
      3. 3
        1. Separate controller
        2. Code behind
    5. MVC Life Cycle
      1. Routing
      2. MvcHandler
      3. ControllerActionInvoker
      4. ViewResult
      5. ControllerContext
    6. 2.0 Features
      1. Areas
      2. Dynamic Scaffolding
      3. Enhanced Model Validation
      4. Asynchronous Controllers support
      5. rendering sub-sections
    7. Important
      1. HttpApplication
        1. Application_Start
        2. Application_BeginRequest
      2. HttpContextBase
        1. HttpContextWrapper
      3. HttpContext
    8. Q/A
      1. Convention Over Configuration
      2. MVC and 3 tier architecture
      3. Leveraging Existing ASP.NET Features
  6. Practices
    1. Unit test
      1. Principle
      2. routes
      3. controllers
      4. custom model binders
      5. action filters
      6. Mocks
        1. Moq
          1. Lambda available
        2. Rhino.Mocks
          1. Full-featured &
          2. Powerful
    2. Full System Testing
    3. AJAX
      1. jQuery
      2. Microsoft Ajax
    4. Scaling the Architecture
      1. Data Access
    5. Project & Extentions
      1. MVC Contrib
      2. MVC Membership
      3. Oxite 2
      4. NerdDinner
      5. Subtopic 4
    6. Customizing VS for MVC
      1. T4 Templete
    7. Security
      1. Authentication
      2. authorization
      3. AuthorizeAttribute
      4. XSS
    8. Dependency Injection of Controllers