Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

51
Carlos Walzer Vemn Sistemas [email protected] Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

description

Creando interfaces de Web ricas con Internet Explorer (ASP.NET). Carlos Walzer Vemn Sistemas [email protected]. Premisa. La primera impresión es la que cuenta. La interfaz gráfica y la comodidad en el uso es lo primero que observará nuestro usuario en contacto con la aplicación. Agenda. - PowerPoint PPT Presentation

Transcript of Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Page 1: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Carlos WalzerVemn Sistemas

[email protected]

Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Page 2: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

• La primera impresión es la que cuenta.

• La interfaz gráfica y la comodidad en el uso es lo primero que observará nuestro usuario en contacto con la aplicación.

Premisa

Page 3: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

• HTML Avanzado

• CSS (Hojas de estilo en cascada)

• DHTML (HTML Dinámico)

• Data Islands con XML (islas de datos XML)

• XML Data Binding

• XMLHTTP (consultas remotas al servidor)

• Behaviors

Agenda

Page 4: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

HTML Avanzado

Algunos tags

Page 5: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

• FIELDSET• LEGEND• BUTTON • <LABEL ACCESSKEY="P" FOR="control">

<U>P</U>roceso:</LABEL>• Modificadores de TAGS

– TABINDEX=3 – ALT = “Un Tooltip”, TITLE tambien– DISABLED– READONLY

• DIV vs. Span

HTML Avanzado

Page 6: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

CSS

Hojas de Estilo en Cascada

Page 7: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

• Que son?• Formas de definir los estilos

– En lineaSTYLE="position:absolute; width:60; height:20;“

– En la página<STYLE> BODY {font-family:"Arial"; font-size:10pt; text-align:center} </STYLE>

– En un archivo externo<link rel="stylesheet" href=“MisEstilos.css">

• Los estilos se heredan• Son dinámicos: Objeto style

CSS – Hojas de estilo en Cascada

Page 8: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

• Aspectos que modifican– Font y Text– Background y colores– Layout

• Bordes, margenes, padding

– Display– Posición– Impresión– Filtros

CSS – Hojas de estilo en Cascada

Page 9: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

• Los Tags <DIV> y <SPAN>

• Propiedades de los estilos– Position (Absolute – Relative)– Display (NO ocupa lugar en el documento)– Visibility (ocupa lugar en el documento)– Overflow– Z-Index

CSS – Hojas de estilo en Cascada

Page 10: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

• Algunos chiches– Zoom– Cursor– pageBreakAfter – pageBreakBefore– Filter– Scrollbar

CSS – Hojas de estilo en Cascada

Page 11: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

DHTML

HTMLDinámico

Page 12: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

DHTML

• Todos Los elementos de una página son objetos programables

• DOM (Document Object Model)• Características

– Estílos Dinámicos– Posicionamiento Dinámico– Contenido Dinámico– Data Binding

• Los lenguajes de scripting

Page 13: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

DHTML

• Los objetos y las colecciones• Los objetos

– Window– Navigator– Document– Location– Screen– Frames– Forms– all

Page 14: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

DHTML

• Las propiedades– ID – Para identificar un objeto– Name– Tagname – Nombre del Tag– ClassName – Nombre del estilo– Style – Acceso al objeto de estilo del elemento– innerHTML, outerHTML– Value, innerText– window.status– Readystate, Complete– Disabled, Readonly– Length– parentElement– Tabindex, Tabstop– Left, top, bottom, right– Rows, Cols

Page 15: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

DHTML

• Los métodos– window.open– window.showModalDialog

• Pasando argumentos• Retornando un valor con window.returnvalue

– document.write– document.createElement– Focus, Blur– Moveto, moveby– Submit– setTimeOut– Print– insertAdjacentHTML, insertAdjacentText

Page 16: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

• Los eventos– onClick, onDblClick, onChange– OnBlur, OnFocus– OnLoad, onBeforeUnload– onBeforeCopy, onBeforePaste, onBeforeCut (after)– onContextMenu– onDragOver, onDragStart, ….– onKeyDown, onKeyPress, onKeyUp– onMouse (down, enter, move, out, up, wheel)– onReadyStateChange– onSubmit

DHTML

Page 17: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

• Los eventos• Event Bubbling

– cancelBubble• Accediendo al objeto que dispara el evento

con Event.srcElement• Cancelando: event.returnvalue = false• Propiedades Event

– altKey, altLeft, clientX, clientY, ctrlKey, KeyCode

– shiftKey, wheelData

DHTML

Page 18: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

• Como suscribir eventos• Inline HTML

– <ELEMENT oncopy = "handler" ... > • All platforms

• Event property– object.oncopy = handler

• JScript only

– object.oncopy = GetRef("handler")• Visual Basic Scripting Edition (VBScript) 5.0 or later only

• Named script– <SCRIPT FOR = object EVENT = oncopy>

• Internet Explorer only

DHTML

Page 19: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

XML Data Islands

Data Binding

Page 20: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Veamos un XML.

<CLIENTES>

<CLIENTE>

<CODIGO>QA23</CODIGO>

<NOMBRE>Americo Dalla Valle</NOMBRE>

<DIRECCION>Salta 518 Avellaneda</DIRECCION>

<TELEFONO>4568-8984</TELEFONO>

</CLIENTE>

<CLIENTE>

<CODIGO>FR56</CODIGO>

<NOMBRE>Maria Laura Sampedro</NOMBRE>

<DIRECCION>Barzana 124 Villa Urquiza</DIRECCION>

<TELEFONO>4895-4674</TELEFONO>

</CLIENTE>

<CLIENTE>

<CODIGO>DF56</CODIGO>

<NOMBRE>Juan Jose Moar</NOMBRE>

<DIRECCION>Habana 548 Lomas del Mirador</DIRECCION>

<TELEFONO>4568-0021</TELEFONO>

</CLIENTE>

</CLIENTES>

Page 21: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Introducción a XML

• Pero, parece HTML?

NO LO ES !!XML = eXtended Mark-up LanguageContiene datos que se autodefinenSepara el contenido de la

presentación

Page 22: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Data Islands de XML.

• Isla de datos

• Define datos en HTML.

• A partir de Internet Explorer 4.0

Page 23: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

¿Para que sirven las Data Islands?

• Para consultas remotas al servidor

• Pueden ser representadas en Tablas

• Pueden ser dinámicamente atadas a objetos de entrada de datos (data binding).

• Pueden agregarse, modificarse o eliminarse sus datos.

Page 24: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Definiendo una Isla de Datos

• En un documento HTML para IE 4.0

<OBJECT width=0 height=0 classid="clsid:550dda30-0541-11d2-9ca9-0060b0ec3d39" id="dsoClientes">

<? xml version=“1.0” encoding="UTF-7“ ?>

<CLIENTES>

<CLIENTE>

<CODIGO>QA23</CODIGO>

<NOMBRE>Americo Dalla Valle</NOMBRE>

<DIRECCION>Salta 518 Avellaneda</DIRECCION>

<TELEFONO>4568-8984</TELEFONO>

</CLIENTE>

</CLIENTES>

</OBJECT>

Page 25: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

¿Como accedo Dinámicamente?

<XML SRC=“Clientes.xml“ ID=“dsoCLientes”></XML>

• DSO (Data Source Object)– Recordset (similar al de ADO)– XMLDocument (XMLDOM)

Page 26: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

¿Con que objetos uso Data Binding?

• Tablas– Table

• Objetos de entradas de datos– Input (text, radio, checkbox, password …)– Textarea– Select, etc.

• Otros Objetos– IFrame– Div– Span– Img, etc.

Page 27: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Data Binding, sintaxis.

• Para un elemento– <INPUT TYPE=TEXTBOX DATASRC="#dsoClientes"

DATAFLD=“Nombre">

• Para una Tabla– DATASRC, DATAFLD– DATAPAGESIZE

• tblClientes.firstPage(), tblClientes.lastPage()• tblClientes.nextPage(), tblClientes.previousPage()

– DATAFORMATAS

Page 28: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

DSO (Data Source Object)

• Propiedades– Recordset ( obj similar al de ADO)

• fields• movefirst, moveLast, moveNext, etc.• recordcount• absolutePosition• addNew, update, delete, etc.

– namedRecordset (mantener Jerarquía)– xmlDocument (DOM)

• Eventos– ondatasetcomplete, ondatasetchanged, onrowenter,

onrowexit,

Page 29: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

XMLHTTP

Consultas remotas al servidor

Page 30: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

iXMLHttpRequest

• Disponible en Microsoft XML 3.0

• Instalado por IE 5.0

• Comunicación HTTP.

• Consultar al servidor sin recargar la página. Que bueno !!!

• Sincrónico o Asincrónico.

Page 31: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

iXMLHTTPRequest

• Propiedades– onReadyStateChan

ge– readyState– responseBody– responseStream– responseText– responseXML– status– statusText

• Métodos– abort– getResponseHeaders– open– send– setRequestHeader

Page 32: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Behaviors

Personalizados y Standards

Page 33: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Que es un Behavior

• Comportamiento

• Es un Objeto que potencializa y extiende al Internet Explorer.

• Es una forma de encapsular código Script.

• Al aplicarlo a distintos elementos HTML, estos se ‘comportarán’ de cierta manera.

Page 34: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Facilidad en el diseño Web

• Se aplica un Behavior de la misma forma que una propiedad de “Style”.

• El código puede existir en un solo lugar del Site.

• Cada página que requiera su funcionalidad debe referirse a la almacenada en el Behavior.

Page 35: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Encapsulamiento

• Definido por su Interface, de la misma manera que un objeto COM.

• Su interface provee como todo Objeto:– Propiedades– Métodos– Eventos

Page 36: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Includes Vs. Behaviors

• Es un Objeto.

• Puede ser aplicado a diversos elementos HTML.

• Es capaz de atender a eventos del Documento y reaccionar a ellos.

• No está atado al ID de un objeto

Page 37: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Creando Behaviors

• Su interfaz se define en XML.

• Se pueden escribir en VbScript o JScript.

• Todo esto guardado en un archivo de texto .HTC (HTML Component).

Page 38: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Elementos XML

• COMPONENT– Urn– ID– Name

• ATTACH

• EVENT

• METHOD– PARAMETER

• PROPERTY

Page 39: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Objetos

• DOCUMENT• ELEMENT

• element.document !!

Page 40: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Comencemos….

<COMPONENT URN=“VemnBehaviorExample”>

</COMPONENT>

Page 41: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Atendiendo Eventos

• Suscribiendo un Evento.• Se unen a los manejadores de eventos existentes.

<ATTACH

EVENT = sElement

FOR = “document” | “window” | “element”

ONEVENT(vbs) | HANDLER (js) = sEventHandler

ID = sID

/>

Cualquier evento StandardCualquier evento Standard

+ OnContentChange+ OnContentChange + OnDocumentReady + OnDocumentReady

Page 42: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Disparando Eventos

• Los eventos disparados son atrapados por el documento.

<EVENT

EVENT = sElement

ID = sID

/>

Page 43: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Propiedades

<PROPERTY<PROPERTYNAME = sNameNAME = sNameID = sPropertyIDID = sPropertyIDINTERNAL = sInternalNameINTERNAL = sInternalNameGET = sGetFunctionGET = sGetFunctionPUT = sPutFunctionPUT = sPutFunctionPERSIST = bPersistPERSIST = bPersistVALUE = vValueVALUE = vValue

/>/>

• OnPropertyChange

• Al definir una funcion PUT

sPropertyID.fireChange()

Page 44: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Métodos

<methodname="methodName“internalName="functionName“dispid=dispID>

[<parameter name="parameterID"/>]</method>

Page 45: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Referenciando Behaviors

• Inline Style

• Embedded Style

• Objeto Style (asignación dinámica)

<P STYLE=“behavior:url(Bhvr.htc)”> Hola </P>

<STYLE>P {behavior:url(Bhvr.htc)}</STYLE>

<SCRIPT>function window_onload() {

P1.style.behavior = url(“Bhvr.htc”);}

</SCRIPT>

Page 46: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Hablando con Behaviors

• Referenciando Propiedades

• Llamando a Métodos

• Atrapando Eventos

<P highlight=“#800080” ID=“P1”> Hola </P><SCRIPT>

P1.hightlight = “yellow”;alert (“El color es “ + P1.hightlight);

</SCRIPT>

<SCRIPT>function window_onload(){

P1.Encender();}

</SCRIPT>

<P onApagar=“doApagar()”>Hola</P>

Page 47: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Behaviors Standards del IE

• SaveFavorite• SaveHistory• saveSnapshot• UserData• ClientCaps• Download• HomePage• AnchorClick• httpFolder

Data Persistance

Page 48: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Librería de Behaviors

• calendar • colorpick • coolbar • coolbutton • dataselect • imageRollover • mask • menu • moveable • mpc • rowover • slider • soundRollover • tooltip

Page 49: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Referencias

• Bibliografía:– XML IE5

• Editorial Wrox

– IE5 Dynamic HTML• Editorial Wrox

– A fondo Dynamic HTML• Mc Graw Hill

• Links– www.vemn.com.ar– www.microsoft.com/scripting– www.microsoft.com/xml– http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/

methods.asp?frame=true– www.javascripts.com– www.24fun.com/– www.siteexperts.com– www.asptoday.com– www.actionjackson.com/

Page 50: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Preguntas?

Page 51: Creando interfaces de Web ricas con Internet Explorer (ASP.NET)

Carlos WalzerVemn Sistemas

[email protected]

Muchas graciaspor su participación