presente y futuro del desarrollo de controles en asp.net victor garcia aprea microsoft mvp | asp.net...

Post on 03-Jan-2015

23 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Presente y futuro del Presente y futuro del desarrollo de controles desarrollo de controles

en ASP.NETen ASP.NET

Victor Garcia ApreaVictor Garcia ApreaMicrosoft MVP | ASP.NETMicrosoft MVP | ASP.NETClarius Consulting S.A.Clarius Consulting S.A.

NNCC

RecursosRecursos

22 http://weblogs.asp.net/vgahttp://weblogs.asp.net/vga

22 “Developing ASP.NET Server Controls “Developing ASP.NET Server Controls

and Components“and Components“

22 Lutz Roeder’s ReflectorLutz Roeder’s Reflector

22 http://www.asp.net/forumshttp://www.asp.net/forums

AgendaAgenda

22 User Controls / Custom controlsUser Controls / Custom controls

22 Ciclo de vida de un controlCiclo de vida de un control

22 Viewstate a fondoViewstate a fondo

22 Rendering vs. Composición Rendering vs. Composición

22 Controles compuestosControles compuestos

22 Lo que viene en Whidbey Lo que viene en Whidbey

UserControlsUserControls

99 Caching gratuito Caching gratuito

(declarativo)(declarativo)

99 Ultra sencillos (drag & drop)Ultra sencillos (drag & drop)

00 La cajita fea gris esa…La cajita fea gris esa…

00 No reusables entre appsNo reusables entre apps

22 Tienen una UI es-tá-ti-caTienen una UI es-tá-ti-ca

Custom ControlsCustom Controls

99 Soporte en tiempo de diseñoSoporte en tiempo de diseño

99 Reusables entre appsReusables entre apps

00 Caching programáticoCaching programático

00 Bastante difíciles de Bastante difíciles de

programarprogramar

22 Tienen una UI dinámicaTienen una UI dinámica

Ciclo de vida de un controlCiclo de vida de un controlInit (desde adentro hacia afuera)Init (desde adentro hacia afuera)TrackViewStateTrackViewStateLoadViewStateLoadViewStateProcessPostDataProcessPostDataLoadLoadProcessPostData (2do intento)ProcessPostData (2do intento)RaiseChangeEventsRaiseChangeEventsRaisePostBackEventRaisePostBackEventPreRenderPreRenderSaveViewStateSaveViewStateRenderRenderUnloadUnload

ViewState a fondoViewState a fondo

LosFormatterLosFormatter22 Optimizado para String, bool, int, Optimizado para String, bool, int,

Hashtable, Array, ArrayList, Pair, TripletHashtable, Array, ArrayList, Pair, Triplet

22 *NO* guardar cualquier tipo*NO* guardar cualquier tipo

22 Conversores de tipo Conversores de tipo

(TypeConverter)(TypeConverter)

22 Que no le llegue al Que no le llegue al

BinaryFormatter! BinaryFormatter!

22

http://weblogs.asp.net/vga/archive/2004/05.ahttp://weblogs.asp.net/vga/archive/2004/05.a

spxspx

RenderingRenderingvs.vs.

ComposiciónComposición

Rendering vs. Rendering vs. ComposiciónComposición

22 Reusar el output de un Reusar el output de un

controlcontrol

22 Reusar el controlReusar el control

22 Más controles, mas Más controles, mas

viewstate, etc. viewstate, etc.

22 Escenarios complejos Escenarios complejos

HtmlTextWriterHtmlTextWriter22 Verbosidad vs. HardcodeoVerbosidad vs. Hardcodeo

22 Concatenación de strings Concatenación de strings

vs. StringBuildervs. StringBuilder

22 Cuando usar cada uno?Cuando usar cada uno?

00 Solo sabe renderizar HTMLSolo sabe renderizar HTML

00 Es una adaptación “hacia Es una adaptación “hacia

abajo”abajo”

HtmlTextWriterHtmlTextWriter99 Nuevo modelo en WhidbeyNuevo modelo en Whidbey

22 MarkupTextWriter es la MarkupTextWriter es la

nueva basenueva base

22 WmlTextWriter / WmlTextWriter /

HtmlTextWriterHtmlTextWriter

00 Nuevo modelo?? Seguro, Nuevo modelo?? Seguro,

Víctor?Víctor?

Controles CompuestosControles Compuestos

Controles CompuestosControles Compuestos22 INamingContainerINamingContainer

22 CreateChildControls () CreateChildControls () (aca y (aca y

nada mas que aca)nada mas que aca)

22 ChildControlsCreated ChildControlsCreated

(invalidar hijos)(invalidar hijos)

22 EnsureChildControls () EnsureChildControls () (usar (usar

con cuidado)con cuidado)

Controles CompuestosControles Compuestos22 CreateChildControls() se CreateChildControls() se

llama on-demandllama on-demand

99 FindControl ()FindControl ()

99 OnPreRender () OnPreRender ()

00 propiedad Controlspropiedad Controls

99 Nueva clase Nueva clase

CompositeControlCompositeControl

Lo que viene en WhidbeyLo que viene en Whidbey

Ciclo de vida de un controlCiclo de vida de un controlPreInitPreInitInitInitInitCompleteInitCompleteLoadStateLoadStateProcessPostDataProcessPostDataPreLoadPreLoadLoadLoadProcessPostData (2do intento)ProcessPostData (2do intento)RaiseChangeEventsRaiseChangeEventsRaisePostBackEventRaisePostBackEventLoadCompleteLoadCompletePreRenderPreRenderPreRenderCompletePreRenderCompleteSaveStateSaveStateSaveStateCompleteSaveStateCompleteRenderRender

ObjectStateFormatterObjectStateFormatter22 Mas optimizaciones: IndexedString, Mas optimizaciones: IndexedString,

Color, HybridDictionary, double, float, Color, HybridDictionary, double, float,

Enum, byteEnum, byte

22 *NO* guardar cualquier tipo*NO* guardar cualquier tipo

22 ControlState & ViewStateControlState & ViewState

22

http://weblogs.asp.net/vga/archive/2004/05.asphttp://weblogs.asp.net/vga/archive/2004/05.asp

xx

Nueva Arquitectura de Nueva Arquitectura de ControlesControles

22 Unificación de ASP.NET v1.0 + MMITUnificación de ASP.NET v1.0 + MMIT

22 *NO* mas duplicar Pages ni Controls *NO* mas duplicar Pages ni Controls

22 Basada en Adaptadores de ControlesBasada en Adaptadores de Controles

Adaptador de ControlAdaptador de Control22 Parece un control… no lo es Parece un control… no lo es

22 Adapta rendering, estado, lógica de Adapta rendering, estado, lógica de

postbackpostback

22 Decide si los eventos del control se Decide si los eventos del control se

disparandisparan

22 La página es un Control, también se La página es un Control, también se

adaptaadapta

99 Diciembre Diciembre

20042004

Alguna pregunta?Alguna pregunta?

Muchas gracias por su atención!Muchas gracias por su atención!

top related