2009 - Basta!: Url rewriting mit iis, asp.net und routing engine
Advanced ASP.NET 2 05.10.2010
-
Upload
albert-weinert -
Category
Self Improvement
-
view
904 -
download
3
description
Transcript of Advanced ASP.NET 2 05.10.2010
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
Albert Weinert, Beratung & Entwicklung
CONTROLLER-FILTER-METHODEN
OnActionExecuting() => IActionFilter OnActionExecuted() => IActionFilter OnResultExecuting() => IResultFilter OnResultExecuted() => IResultFilter OnAuthorization()=> IAuthorzisationFilter OnException() => IExceptionFilter
05.10.2010
override OnResultExecuting
CODE
INVERSION OF CONTROL Dependency Injection mit IoC Frameworks
StructureMap LightCore Windsor.Castle Unity
In MVC 2 nur über ControllerFactory Woanders muss „selbst“ injiziert werden
ControllerFactory
CODE
Albert Weinert, Beratung & Entwicklung
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
IActionInvoker CreateActionInvoker() return new ControllerActionInvoker()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
Dependency Injection by ActionFilter
CODE
Albert Weinert, Beratung & Entwicklung
ACTIONRESULT
Basis-Klasse für alle ActionResult Implementieren
HttpHeader setzen (ContentType, Encoding etc.) HttpContext.Response mit dem Ergebnis
beschreiben
08.07.2010
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 IModelBinder
object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
Nur eine Instanz pro Anwendung DI Injection kann problematisch sein
ModelBinder
CODE