• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Advanced  ASP.NET 2 05.10.2010
 

Advanced ASP.NET 2 05.10.2010

on

  • 948 views

Der Quelltext dazu ist hier

Der Quelltext dazu ist hier

http://github.com/DerAlbertCom/AdvancedMVC

Statistics

Views

Total Views
948
Views on SlideShare
948
Embed Views
0

Actions

Likes
0
Downloads
14
Comments
1

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Advanced  ASP.NET 2 05.10.2010 Advanced ASP.NET 2 05.10.2010 Presentation Transcript

    • Advanced ASP.NET MVC
      Albert Weinert
    • MvcHtmlstring
      MvcHtmlString ist für HtmlHelper
      Rückgabe-Wert
      Wird von der <%: %> Syntax nicht Encoded
      Kein Einfluss auf <%= %>
    • MvcHtmlString als Rückgabe-Wert
      demo
    • Controller-Filter-Methoden
      OnActionExecuting() => IActionFilter
      OnActionExecuted() => IActionFilter
      OnResultExecuting() => IResultFilter
      OnResultExecuted() => IResultFilter
      OnAuthorization() => IAuthorzisationFilter
      OnException() => IExceptionFilter
      05.10.2010
      Albert Weinert, Beratung & Entwicklung
    • overrideOnResultExecuting
      CODE
    • Inversion ofcontrol
      DependencyInjection mit IoC Frameworks
      StructureMap
      LightCore
      Windsor.Castle
      Unity
      In MVC 2 nur über ControllerFactory
      Woanders muss „selbst“ injiziert werden
    • ControllerFactory
      CODE
    • Eigene FilterAttribute
      MÜSSEN mindestens von FilterAttribute ableiten, sowie eins der I*Filter Interfaces implementieren
      IAuthorizationFilter
      IActionFilter
      IResultFilter
      IExceptionFilter
      08.07.2010
      Albert Weinert, Beratung & Entwicklung
    • DI bei Actionfilter und actionresult
      ActionFilter sind Attribute
      Keine Ctor-Injection möglich
      A) Service Lookup im Attribute
      Attribute kennt Container
      ServiceLocator
      Es ist nicht Aufgabe des Attributes
      B) Property Injection
      aber wo und wie
      05.10.2010
      Albert Weinert, Beratung & Entwicklung
    • Controller
      IActionInvokerCreateActionInvoker()
      returnnewControllerActionInvoker()r
      08.07.2010
      Albert Weinert, Beratung & Entwicklung
    • ControllerAction.InvokeAction
      FindAction()
      action.GetFilters()
      InvokeAuthorizationFilter()
      IAuthorizationFilter
      InvokeActionResult()
      Request.ValidateInput() (optional)
      GetParametersValues()
      GetParameterValue()
      ModelBinder
      Validation
      InvokeActionMethodWithFilters()
      IActionFilter
      InvokeActionMethod()
      InvokeActionResultWithFilters()
      IResultFilter
      InvokeActionResult()
      Wenn Exception aufgetreten ist
      InvokeExceptionFilters()
      IExceptionFilter
      InvokeActionResult()
      GetFilters()
      08.07.2010
      Albert Weinert, Beratung & Entwicklung
    • DependencyInjectionbyActionFilter
      CODE
    • ActionResult
      Basis-Klasse für alle ActionResult
      Implementieren
      HttpHeader setzen (ContentType, Encoding etc.)
      HttpContext.Response mit dem Ergebnis beschreiben
      08.07.2010
      Albert Weinert, Beratung & Entwicklung
    • ActionResult mit DI für Kalendar Einträge
      CODE
    • Clientseite validierung
      Html.EnableClientValidation()
      Html.BeginForm(); Html.EndForm()
      ModelClientValidationRule
      ModelValidator => DataAnnotationsModelValidator<T>
      Registrierung des Validators
    • Clientseite Validierung
      CODE
    • ModelBinder
      Umwandeln der Request-Daten in ein Model
      Implementiert IModelBinderobjectBindModel(ControllerContextcontrollerContext, ModelBindingContextbindingContext)
      Nur eine Instanz pro Anwendung
      DI Injection kann problematisch sein
    • ModelBinder
      CODE