SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
DESARROLLO WEB CON
DESARROLLO WEB CON
ASP.NET
ASP.NET
 HTML (1991)
HTML (1991)
 Páginas estáticas orientadas al contenido
Páginas estáticas orientadas al contenido
 CGI (1993)
CGI (1993)
 (Common Gateway Interface)
(Common Gateway Interface) Ejecutables que generan
Ejecutables que generan
HTML dinámicamente
HTML dinámicamente
 Versión mejorada: ISAPI. L
Versión mejorada: ISAPI. La aplicación Web no era un
a aplicación Web no era un
ejecutable independiente, sino un plug-in. En caso de
ejecutable independiente, sino un plug-in. En caso de
Windows se trataba de una DLL que era invocada en el
Windows se trataba de una DLL que era invocada en el
propio contexto del servidor Web.
propio contexto del servidor Web.
 ASP (1996), PHP (1997), JSP (1999)
ASP (1996), PHP (1997), JSP (1999)
 Páginas HTML
Páginas HTML que
que incluyen código script dinámico
incluyen código script dinámico
Historia del desarrollo web
Historia del desarrollo web
www.profmatiasgar
www.profmatiasgar
cia.com.ar
cia.com.ar
IP =
IP =
173.237.190.67
173.237.190.67
http://
http://
www.profmatiasgarci
www.profmatiasgarci
a.com.ar/apweb.html
a.com.ar/apweb.html
http://
http://
www.profmatiasgarci
www.profmatiasgarci
a.com.ar/apweb.html
a.com.ar/apweb.html
IP=173.237.190.67
IP=173.237.190.67
Puerto: 80
Puerto: 80
IP=173.237.190.67
IP=173.237.190.67
Puerto: 80
Puerto: 80
apweb.html
apweb.html
<html>
<html>
<body>
<body>
Bienvenidos al
Bienvenidos al
Curso ASP.NET
Curso ASP.NET
</body>
</body>
</html>
</html>
apweb.html
apweb.html
<html>
<html>
<body>
<body>
Bienvenidos al
Bienvenidos al
Curso ASP.NET
Curso ASP.NET
</body>
</body>
</html>
</html>
Internet
Internet
DNS
DNS
Servidor
Servidor
Cliente
Cliente
HTTP Request
HTTP Request
HTTP Response
HTTP Response
Aplicaciones Web
Aplicaciones Web
Aplicaciones Web
Aplicaciones Web
 Una aplicación web es un programa que genera archivos en HTML
Una aplicación web es un programa que genera archivos en HTML
(páginas) que se transmiten por medio del protocolo HTTP de un servidor
(páginas) que se transmiten por medio del protocolo HTTP de un servidor
al cliente y viceversa, brindando distintas funcionalidades a un usuario
al cliente y viceversa, brindando distintas funcionalidades a un usuario
final.
final.
 El HTTP define como los navegadores y los servidores Web se
El HTTP define como los navegadores y los servidores Web se
comunican uno con otro.
comunican uno con otro.
 En una aplicación web, el componente principal es el HTML Form, que es
En una aplicación web, el componente principal es el HTML Form, que es
el elemento de html que contiene los controles de la interfaz de usuario
el elemento de html que contiene los controles de la interfaz de usuario
de cada página y captura la entrada de datos del usuario. El HTML Form
de cada página y captura la entrada de datos del usuario. El HTML Form
es la porción de la página que es enviada a través del protocolo HTTP al
es la porción de la página que es enviada a través del protocolo HTTP al
servidor para procesar el pedido realizado por el usuario.
servidor para procesar el pedido realizado por el usuario.
 Un servidor web es un programa que ejecuta una aplicación
Un servidor web es un programa que ejecuta una aplicación
web que genera las páginas disponibles para ser visitadas
web que genera las páginas disponibles para ser visitadas
por los usuarios de la red. A la computadora que ejecuta este
por los usuarios de la red. A la computadora que ejecuta este
programa también se lo llama servidor web.
programa también se lo llama servidor web.
 Internet Information Server (IIS), es el servidor Web de
Internet Information Server (IIS), es el servidor Web de
Microsoft que corre sobre plataformas Windows. Los servicios
Microsoft que corre sobre plataformas Windows. Los servicios
que ofrece son: FTP, SMTP, NNTP y HTTP/HTTPS
que ofrece son: FTP, SMTP, NNTP y HTTP/HTTPS
 las páginas ASP tienen la extensión .ASP y son procesadas
las páginas ASP tienen la extensión .ASP y son procesadas
por la DLL ASP.DLL y sin embargo las páginas ASP.Net poseen
por la DLL ASP.DLL y sin embargo las páginas ASP.Net poseen
la extensión .ASPX y son procesadas por el entorno de
la extensión .ASPX y son procesadas por el entorno de
ejecución .NET Framework, que las transforma en el código
ejecución .NET Framework, que las transforma en el código
intermedio, representado en este caso por la DLL
intermedio, representado en este caso por la DLL
ASPNET_ISAPI.DLL.
ASPNET_ISAPI.DLL.
Servidor Web
Servidor Web
Hypertext Transfer Protocol (HTTP)
Hypertext Transfer Protocol (HTTP)
 HTTP es un protocolo de Internet que define la sintaxis y la
HTTP es un protocolo de Internet que define la sintaxis y la
semántica que deben utilizar los navegadores y los servidores
semántica que deben utilizar los navegadores y los servidores
Web para poder comunicarse
Web para poder comunicarse
 Esta basado en texto y es transmitido sobre conexiones TCP
Esta basado en texto y es transmitido sobre conexiones TCP
 Es un protocolo orientado a transacciones y sigue el esquema
Es un protocolo orientado a transacciones y sigue el esquema
petición-respuesta entre un cliente y un servidor. Al cliente
petición-respuesta entre un cliente y un servidor. Al cliente
que efectúa la petición (un navegador web o un spider) se lo
que efectúa la petición (un navegador web o un spider) se lo
conoce como "user agent" (agente del usuario). A la
conoce como "user agent" (agente del usuario). A la
información transmitida se la llama recurso y se la identifica
información transmitida se la llama recurso y se la identifica
mediante un localizador uniforme de recursos (URL). Los
mediante un localizador uniforme de recursos (URL). Los
recursos pueden ser archivos, el resultado de la ejecución de
recursos pueden ser archivos, el resultado de la ejecución de
un programa, una consulta a una base de datos, la traducción
un programa, una consulta a una base de datos, la traducción
automática de un documento, etc.
automática de un documento, etc.
HTTP Request
HTTP Request
GET
GET /apweb.html
/apweb.html HTTP/1.1
HTTP/1.1
Accept: */*
Accept: */*
Accept-Language:...
Accept-Language:...
Accept-Encoding:...
Accept-Encoding:...
If-Modified-Since:...
If-Modified-Since:...
If-None-Match:...
If-None-Match:...
User-Agent: Mozilla/4.0...
User-Agent: Mozilla/4.0...
Host:
Host: www.profmatiasgarcia.com.ar
www.profmatiasgarcia.com.ar
Connection: Keep-Alive
Connection: Keep-Alive
[blank line]
[blank line]
GET
GET /apweb.html
/apweb.html HTTP/1.1
HTTP/1.1
Accept: */*
Accept: */*
Accept-Language:...
Accept-Language:...
Accept-Encoding:...
Accept-Encoding:...
If-Modified-Since:...
If-Modified-Since:...
If-None-Match:...
If-None-Match:...
User-Agent: Mozilla/4.0...
User-Agent: Mozilla/4.0...
Host:
Host: www.profmatiasgarcia.com.ar
www.profmatiasgarcia.com.ar
Connection: Keep-Alive
Connection: Keep-Alive
[blank line]
[blank line]
HTTP Response
HTTP Response
HTTP/1.1
HTTP/1.1 200
200 OK
OK
Server: Microsoft-IIS/5.0
Server: Microsoft-IIS/5.0
Date: ...
Date: ...
Content-Type:
Content-Type: text/html
text/html
Accept-Ranges: bytes
Accept-Ranges: bytes
Last-Modified: ...
Last-Modified: ...
ETag: ...
ETag: ...
Content-Length: 46
Content-Length: 46
[blank line]
[blank line]
<html>
<html>
<body>
<body>
Bienvenidos al Curso ASP.NET
Bienvenidos al Curso ASP.NET
</body>
</body>
</html>
</html>
HTTP/1.1
HTTP/1.1 200
200 OK
OK
Server: Microsoft-IIS/5.0
Server: Microsoft-IIS/5.0
Date: ...
Date: ...
Content-Type:
Content-Type: text/html
text/html
Accept-Ranges: bytes
Accept-Ranges: bytes
Last-Modified: ...
Last-Modified: ...
ETag: ...
ETag: ...
Content-Length: 46
Content-Length: 46
[blank line]
[blank line]
<html>
<html>
<body>
<body>
Bienvenidos al Curso ASP.NET
Bienvenidos al Curso ASP.NET
</body>
</body>
</html>
</html>
HyperText Markup Language HTML
HyperText Markup Language HTML
 Lenguaje de marcado predominante para la elaboración de
Lenguaje de marcado predominante para la elaboración de
páginas web que se utiliza para describir y traducir la
páginas web que se utiliza para describir y traducir la
estructura y la información en forma de texto, así como para
estructura y la información en forma de texto, así como para
complementar el texto con objetos tales como imágenes.
complementar el texto con objetos tales como imágenes.
 El HTML se escribe en forma de «etiquetas», rodeadas por
El HTML se escribe en forma de «etiquetas», rodeadas por
corchetes angulares (<,>), por ejemplo <tag> …. </tag>.
corchetes angulares (<,>), por ejemplo <tag> …. </tag>.
 HTML también puede describir, hasta un cierto punto, la
HTML también puede describir, hasta un cierto punto, la
apariencia de un documento, y puede incluir un script (por
apariencia de un documento, y puede incluir un script (por
ejemplo JavaScript), el cual puede afectar el comportamiento
ejemplo JavaScript), el cual puede afectar el comportamiento
de navegadores web y otros procesadores de HTML.
de navegadores web y otros procesadores de HTML.
HTML Forms
HTML Forms
 En el corazón de toda aplicación Web están los HTML Forms
En el corazón de toda aplicación Web están los HTML Forms
 Un HTML Form es la porción de un documento HTML que
Un HTML Form es la porción de un documento HTML que
aparece entre las etiquetas <form></form>
aparece entre las etiquetas <form></form>
 Las páginas ASP.Net (Active Server Pages), también llamadas
Las páginas ASP.Net (Active Server Pages), también llamadas
páginas activas o dinámicas, son páginas que contienen código
páginas activas o dinámicas, son páginas que contienen código
HTML, script de cliente y un código que se ejecuta en el servidor,
HTML, script de cliente y un código que se ejecuta en el servidor,
dando como resultado código HTML. Por lo tanto al cargar una
dando como resultado código HTML. Por lo tanto al cargar una
página ASP.Net en nuestro navegador, en realidad no estamos
página ASP.Net en nuestro navegador, en realidad no estamos
cargando la página ASP.Net como tal, sino el resultado de la
cargando la página ASP.Net como tal, sino el resultado de la
ejecución de la página, es decir la salida de la página ASP.Net, que
ejecución de la página, es decir la salida de la página ASP.Net, que
se trata de código HTML. Es decir, son páginas que se ejecutan en el
se trata de código HTML. Es decir, son páginas que se ejecutan en el
servidor enviando como resultado al cliente código HTML.
servidor enviando como resultado al cliente código HTML.
 Podemos definir ASP.Net como el entorno de desarrollo incluido en
Podemos definir ASP.Net como el entorno de desarrollo incluido en
la plataforma .NET de Microsoft, que nos permite desarrollar
la plataforma .NET de Microsoft, que nos permite desarrollar
completas aplicaciones Web que se ejecutarán sobre el entorno
completas aplicaciones Web que se ejecutarán sobre el entorno
ofrecido por el .NET Framework
ofrecido por el .NET Framework
Qué es ASP.Net?
Qué es ASP.Net?
 ASP.Net es un “Marco” (framework) para programar
ASP.Net es un “Marco” (framework) para programar
aplicaciones web, de un modo similar al que se programan las
aplicaciones web, de un modo similar al que se programan las
aplicaciones windows. El componente principal son los
aplicaciones windows. El componente principal son los Web
Web
Forms
Forms (formularios web) que permiten, entre otras cosas,
(formularios web) que permiten, entre otras cosas,
separar la interfaz del usuario de la funcionalidad de la
separar la interfaz del usuario de la funcionalidad de la
aplicación.
aplicación.
 ASP.Net no es un lenguaje de programación, sino que es un
ASP.Net no es un lenguaje de programación, sino que es un
entorno de programación o tecnología de desarrollo, pero no es
entorno de programación o tecnología de desarrollo, pero no es
un lenguaje. De hecho ASP.Net soporta distintos lenguajes
un lenguaje. De hecho ASP.Net soporta distintos lenguajes
como Visual Basic.Net, C# o JScript.
como Visual Basic.Net, C# o JScript.
 ASP.Net permite generar aplicaciones web con el paradigma de
ASP.Net permite generar aplicaciones web con el paradigma de
Windows
Windows
Qué es ASP.Net?
Qué es ASP.Net?
Base Class Library
Base Class Library
Common Language Specification
Common Language Specification
Common Language Runtime
Common Language Runtime
ADO.NET, XML, Enterprise Services
ADO.NET, XML, Enterprise Services
VB
VB C++
C++ C#
C#
Visual
Studio.NET
Visual
Studio.NET
ASP.NET: Web Services
ASP.NET: Web Services
and Web Forms
and Web Forms
JScript
JScript …
…
Windows
Windows
Forms
Forms
Qué es ASP.Net?
Qué es ASP.Net?
 Formularios Web o páginas .ASPX
Formularios Web o páginas .ASPX: Proveen de la interfase
: Proveen de la interfase
visual. No tienen código ejecutable.
visual. No tienen código ejecutable.
 Páginas de Code-behind
Páginas de Code-behind: Están asociadas con cada formulario
: Están asociadas con cada formulario
y son las que proveen del código ejecutable del lado del
y son las que proveen del código ejecutable del lado del
servidor.
servidor.
 Archivos de Configuración
Archivos de Configuración: Son archivos que permiten
: Son archivos que permiten
configurar la aplicación, por ejemplo el archivo Web.config y
configurar la aplicación, por ejemplo el archivo Web.config y
el servidor por ejemplo el archivo machine.config.
el servidor por ejemplo el archivo machine.config.
 Global.asax
Global.asax: Es un archivo que contiene código. Este código
: Es un archivo que contiene código. Este código
responde a eventos que se disparan en la aplicación Web.
responde a eventos que se disparan en la aplicación Web.
 Referencias a servicios web xml.
Referencias a servicios web xml.
 Conectividad a bases de datos.
Conectividad a bases de datos.
 Sistema de caché.
Sistema de caché.
Componentes de las aplicaciones
Componentes de las aplicaciones
Web ASP.Net
Web ASP.Net
Web Forms
Web Forms
 Combinación de código HTML + controles que se ejecutan en el
Combinación de código HTML + controles que se ejecutan en el
servidor
servidor
 Pueden usarse para crear páginas Web programables que sirvan
Pueden usarse para crear páginas Web programables que sirvan
como interfaz de usuario de las aplicaciones Web.
como interfaz de usuario de las aplicaciones Web.
 Extensión .aspx
Extensión .aspx
 Formularios semejantes a los Windows Forms pero en Web
Formularios semejantes a los Windows Forms pero en Web
 Separación lógica – diseño
Separación lógica – diseño
 Componentes gráficos
Componentes gráficos
 Estado
Estado
 Eventos
Eventos
 Propiedades
Propiedades
 Admiten cualquier lenguaje compatible con Common Language
Admiten cualquier lenguaje compatible con Common Language
Runtime de .NET, incluidos  Visual Basic,  Visual C# y  JScript.NET.
Runtime de .NET, incluidos  Visual Basic,  Visual C# y  JScript.NET.
 Una Página Web ASP.Net consta de dos partes:
Una Página Web ASP.Net consta de dos partes:
 Elementos visuales, que incluyen controles del servidor y texto estático.
Elementos visuales, que incluyen controles del servidor y texto estático.
 Programación lógica para la página, que incluye manejador de eventos
Programación lógica para la página, que incluye manejador de eventos
y el resto del código.
y el resto del código.
 Modelos de Página
Modelos de Página
 Modelo de Página Single-File: el HTML y el código de programación se
Modelo de Página Single-File: el HTML y el código de programación se
almacena en el mismo .aspx. El código de programación es un bloque
almacena en el mismo .aspx. El código de programación es un bloque
que contiene el atributo runat=“server”, para marcar al código como
que contiene el atributo runat=“server”, para marcar al código como
código ejecutable por ASP.NET
código ejecutable por ASP.NET
 Modelo de Página Code-Behind: el HTML esta en un archivo .aspx y el
Modelo de Página Code-Behind: el HTML esta en un archivo .aspx y el
código de programación en otro archivo .aspx.
código de programación en otro archivo .aspx.
Modelo de Código de Páginas Web
Modelo de Código de Páginas Web
Atributos de una página
Atributos de una página
 Tres niveles de atributos
Tres niveles de atributos
 Page, Definen funciones globales
Page, Definen funciones globales
<%@ Page Language="C#" AutoEventWireup="true"
<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="inicio.aspx.cs" Inherits="inicio" %>
CodeFile="inicio.aspx.cs" Inherits="inicio" %>
 Código, gestión de eventos del formulario
Código, gestión de eventos del formulario
<script> .... </script>
<script> .... </script>
 LayOut, presentación de los datos
LayOut, presentación de los datos
Body, Como se va a mostrar la página
Body, Como se va a mostrar la página
< body>
< body>
....
....
</body>
</body>
Form, como se procesan grupos de control
Form, como se procesan grupos de control
< form id=“Form1” method=“post” runat=“server”>
< form id=“Form1” method=“post” runat=“server”>
....
....
</form>
</form>
Etiqueta <@ Page >
Etiqueta <@ Page >
 Language
Language
 Lenguaje en el que está escrita
Lenguaje en el que está escrita
 Vb, c#, jscrip
Vb, c#, jscrip
 CodeFile
CodeFile
 Qué página contiene el código
Qué página contiene el código
 Inherits
Inherits
 Clase con la que va a trabajar
Clase con la que va a trabajar
 AutoEventWireup
AutoEventWireup
 Si hay que especificar los procedimientos para los eventos o los toma
Si hay que especificar los procedimientos para los eventos o los toma
dependiendo del nombre del procedimientos
dependiendo del nombre del procedimientos
Etiqueta <script>
Etiqueta <script>
 Código para ejecutar eventos del cliente
Código para ejecutar eventos del cliente
 <script runat=“server”> el evento se ejecuta en el servidor
<script runat=“server”> el evento se ejecuta en el servidor
 Se recomienda programar los eventos de servidor en el
Se recomienda programar los eventos de servidor en el
archivo de código asociado para diferenciarlo del código que
archivo de código asociado para diferenciarlo del código que
va a interpretar el navegador
va a interpretar el navegador
Etiqueta <form>
Etiqueta <form>
 No tiene que ver con el concepto de formulario.
No tiene que ver con el concepto de formulario.
 Puede tener varios <form> .. </form> en una web pero solo
Puede tener varios <form> .. </form> en una web pero solo
uno que se ejecute en el lado servidor
uno que se ejecute en el lado servidor
 Method, como se envían los valores al servidor
Method, como se envían los valores al servidor
 Post, datos se envían en parejas nombre/valor dentro de la petición
Post, datos se envían en parejas nombre/valor dentro de la petición
http
http
 Get, datos se pasan como un string
Get, datos se pasan como un string
 Runat, identifica si se devuelve información al servidor
Runat, identifica si se devuelve información al servidor
 Runat=“server”, envía la información al servidor
Runat=“server”, envía la información al servidor
 No tiene, se ejecuta como un formulario HTML
No tiene, se ejecuta como un formulario HTML
Tipos de controles servidor
Tipos de controles servidor
 HTML server controls
HTML server controls
 Son elementos HTML que contienen atributos que los hacen visibles (y
Son elementos HTML que contienen atributos que los hacen visibles (y
programables) en un servidor. Exponen un modelo de objeto que se
programables) en un servidor. Exponen un modelo de objeto que se
relacionan muy estrechamente con los elementos HTML que procesan.
relacionan muy estrechamente con los elementos HTML que procesan.
 Añadir runat=“server” para tratarlo en el modo servidor
Añadir runat=“server” para tratarlo en el modo servidor
 Web server controls
Web server controls
 Controles con más funciones incorporadas. incluyen no sólo controles de
Controles con más funciones incorporadas. incluyen no sólo controles de
tipo formulario como botones y cuadros de texto, sino también controles
tipo formulario como botones y cuadros de texto, sino también controles
con fines especiales como un calendario. Los controles de servidor Web
con fines especiales como un calendario. Los controles de servidor Web
son más abstractos que los controles de servidor HTML pues su modelo
son más abstractos que los controles de servidor HTML pues su modelo
de objetos no refleja necesariamente la sintaxis HTML.
de objetos no refleja necesariamente la sintaxis HTML.
 Integrados, equivalentes a los controles HTML
Integrados, equivalentes a los controles HTML
 Validación, testear los datos introducidos
Validación, testear los datos introducidos
 Enriquecidos, funcionalidad avanzada
Enriquecidos, funcionalidad avanzada
 Enlazados a datos
Enlazados a datos
 Controles Web, presentación de datos en navegadores
Controles Web, presentación de datos en navegadores
Controles de servidor HTML
Controles de servidor HTML
 Acceso desde el lado de servidor
Acceso desde el lado de servidor
 Las propiedades son todas de tipo String, por lo que solo se detecta
Las propiedades son todas de tipo String, por lo que solo se detecta
los errores cuando se ejecuta
los errores cuando se ejecuta
 Están dentro de una etiqueta
Están dentro de una etiqueta <Form ... Runat=“server”>
<Form ... Runat=“server”>
 Namespace System.Web.UI.HTMLControls
Namespace System.Web.UI.HTMLControls
 Permite actualizar rápidamente una página html con nuevas
Permite actualizar rápidamente una página html con nuevas
funcionalidades
funcionalidades
<input type=“text” id=“textname” runat=“server”>
<input type=“text” id=“textname” runat=“server”>
 Ofrecen las funciones siguientes:
Ofrecen las funciones siguientes:
 Un modelo de objetos que pueda volver a programar en el servidor con las técnicas habituales
Un modelo de objetos que pueda volver a programar en el servidor con las técnicas habituales
orientadas a objetos.
orientadas a objetos.
 Un conjunto de eventos para los que pueda escribir controles de eventos de la misma forma que lo
Un conjunto de eventos para los que pueda escribir controles de eventos de la misma forma que lo
haría en un formulario basado en cliente, con la excepción de que un evento se controla en código
haría en un formulario basado en cliente, con la excepción de que un evento se controla en código
del servidor.
del servidor.
 Mantenimiento automático del estado del control. Si el formulario realiza una acción de ida y
Mantenimiento automático del estado del control. Si el formulario realiza una acción de ida y
vuelta al servidor, los valores que el usuario escriba en los controles de servidor HTML se
vuelta al servidor, los valores que el usuario escriba en los controles de servidor HTML se
mantendrán automáticamente cuando la página se envíe de vuelta al explorador.
mantendrán automáticamente cuando la página se envíe de vuelta al explorador.
 Compatibilidad con estilos HTML 4.0 si la página de formularios Web Forms se muestra en un
Compatibilidad con estilos HTML 4.0 si la página de formularios Web Forms se muestra en un
explorador que admite hojas de estilos en cascada.
explorador que admite hojas de estilos en cascada.
HtmlImage
HtmlImage
HtmlImage
HtmlImage
HtmlInputControl
HtmlInputControl
HtmlInputControl
HtmlInputControl
System.Object
System.Object
System.Object
System.Object
System.Web.UI.Control
System.Web.UI.Control
System.Web.UI.Control
System.Web.UI.Control
HtmlInputFile
HtmlInputFile
HtmlInputFile
HtmlInputFile
HtmlInputHidden
HtmlInputHidden
HtmlInputHidden
HtmlInputHidden
HtmlInputImage
HtmlInputImage
HtmlInputImage
HtmlInputImage
HtmlInputRadioButton
HtmlInputRadioButton
HtmlInputRadioButton
HtmlInputRadioButton
HtmlInputText
HtmlInputText
HtmlInputText
HtmlInputText
HtmlInputButton
HtmlInputButton
HtmlInputButton
HtmlInputButton
HtmlInputCheckBox
HtmlInputCheckBox
HtmlInputCheckBox
HtmlInputCheckBox
HtmlContainerControl
HtmlContainerControl
HtmlContainerControl
HtmlContainerControl
HtmlControls
HtmlControls
HtmlControls
HtmlControls
HtmlForm
HtmlForm
HtmlForm
HtmlForm
HtmlGenericControl
HtmlGenericControl
HtmlGenericControl
HtmlGenericControl
HtmlSelect
HtmlSelect
HtmlSelect
HtmlSelect
HtmlTable
HtmlTable
HtmlTable
HtmlTable
HtmlTableCell
HtmlTableCell
HtmlTableCell
HtmlTableCell
HtmlTableRow
HtmlTableRow
HtmlTableRow
HtmlTableRow
HtmlTextArea
HtmlTextArea
HtmlTextArea
HtmlTextArea
HtmlAnchor
HtmlAnchor
HtmlAnchor
HtmlAnchor
HtmlButton
HtmlButton
HtmlButton
HtmlButton
<img>
<img>
<input type=file>
<input type=file>
<input type=hidden>
<input type=hidden>
<input type=image>
<input type=image>
<input type=radio>
<input type=radio>
<input type=text>
<input type=text>
<input type=button>
<input type=button>
<input type=checkbox>
<input type=checkbox>
<form>
<form>
<span>,
<span>,
<div>,
<div>,
<select>
<select>
<table>
<table>
<td>, <th>
<td>, <th>
<tr>
<tr>
<textarea>
<textarea>
<a>
<a>
<button>
<button>
Controles de servidor HTML
Controles de servidor HTML
Controles de servidor WEB
Controles de servidor WEB
 Creados para ASP.Net
Creados para ASP.Net
 No tienen funcionalidad si no tienen una etiqueta runat=“server”
No tienen funcionalidad si no tienen una etiqueta runat=“server”
 Propiedades son tipadas, permite detectar errores antes de
Propiedades son tipadas, permite detectar errores antes de
compilar
compilar
 Namespace System.Web.UI.WebControls
Namespace System.Web.UI.WebControls
 Ofrecen todas las funciones descritas anteriormente para los
Ofrecen todas las funciones descritas anteriormente para los
controles de servidor HTML (excepto la asignación uno a uno a
controles de servidor HTML (excepto la asignación uno a uno a
elementos HTML) y estas funciones adicionales:
elementos HTML) y estas funciones adicionales:
 Un modelo de objetos enriquecido que proporciona capacidades de programación de tipo
Un modelo de objetos enriquecido que proporciona capacidades de programación de tipo
seguro.
seguro.
 Detección automática del explorador.
Detección automática del explorador.
 La capacidad de definir su propia apariencia para el control mediante plantillas.
La capacidad de definir su propia apariencia para el control mediante plantillas.
 La capacidad de especificar si un evento del control provoca un envío inmediato al servidor o,
La capacidad de especificar si un evento del control provoca un envío inmediato al servidor o,
en su lugar, se almacena en caché y se activa cuando se envía el formulario.
en su lugar, se almacena en caché y se activa cuando se envía el formulario.
 Capacidad para pasar eventos de un control anidado (como un botón en una tabla) al control
Capacidad para pasar eventos de un control anidado (como un botón en una tabla) al control
contenedor.
contenedor.
 Los atributos no son los de los elementos HTML. En lugar de ello, son propiedades del control
Los atributos no son los de los elementos HTML. En lugar de ello, son propiedades del control
Web.
Web.
AdRotator
AdRotator
AdRotator
AdRotator
BaseDataList
BaseDataList
BaseDataList
BaseDataList
System.Object
System.Object
System.Object
System.Object
DataGrid
DataGrid
DataGrid
DataGrid
DataList
DataList
DataList
DataList
ListControl
ListControl
ListControl
ListControl
RadioButtonList
RadioButtonList
RadioButtonList
RadioButtonList
CheckBoxList
CheckBoxList
CheckBoxList
CheckBoxList
DropDownList
DropDownList
DropDownList
DropDownList
ListBox
ListBox
ListBox
ListBox
Panel
Panel
Panel
Panel
Table
Table
Table
Table
Repeater
Repeater
Repeater
Repeater Xml
Xml
Xml
Xml
System.Web.UI.Control
System.Web.UI.Control
System.Web.UI.Control
System.Web.UI.Control
WebControls
WebControls
WebControls
WebControls
Button
Button
Button
Button
Calendar
Calendar
Calendar
Calendar
HyperLink
HyperLink
HyperLink
HyperLink
TextBox
TextBox
TextBox
TextBox
RadioButton
RadioButton
RadioButton
RadioButton
CheckBox
CheckBox
CheckBox
CheckBox
Label
Label
Label
Label
ImageButton
ImageButton
ImageButton
ImageButton
Image
Image
Image
Image
Controles de servidor WEB
Controles de servidor WEB
Eventos de servidor
Eventos de servidor
 Los controles pueden lanzar eventos
Los controles pueden lanzar eventos
 Ya sean un HtmlControl o un WebControl
Ya sean un HtmlControl o un WebControl
 Load, Click, TextChange, SelectedItemChange…
Load, Click, TextChange, SelectedItemChange…
 Posibilidad de procesamiento:
Posibilidad de procesamiento:
 En servidor
En servidor
 En cliente
En cliente
 Encolados hasta siguiente postback
Encolados hasta siguiente postback
 El cliente realiza una petición, el mensaje es recibido en el
El cliente realiza una petición, el mensaje es recibido en el
servidor, donde es analizado y atendido por el manejador de
servidor, donde es analizado y atendido por el manejador de
eventos que corresponda. Se arma la respuesta y el cliente
eventos que corresponda. Se arma la respuesta y el cliente
obtiene la información que ha solicitado (ya sea una nueva
obtiene la información que ha solicitado (ya sea una nueva
página, un mensaje, etc.)
página, un mensaje, etc.)
Server
Server
Cliente Web
Cliente Web
Analiza el mensaje
Analiza el mensaje
Analiza el mensaje
Analiza el mensaje
click
click
manejador
manejador
mensaje
mensaje
mensaje
mensaje
respuesta
respuesta
respuesta
respuesta
Llama al
Llama al
manejador
manejador
apropiado
apropiado
Modelo de Eventos Web Form
Modelo de Eventos Web Form
Eventos de un webform
Eventos de un webform
 Los eventos asociados con controles ASP.NET son generados
Los eventos asociados con controles ASP.NET son generados
en el cliente y atendidos en el servidor. Por este motivo,
en el cliente y atendidos en el servidor. Por este motivo,
ASP.NET necesita que la información para atender el evento
ASP.NET necesita que la información para atender el evento
del cliente sea transferida al servidor por medio de una
del cliente sea transferida al servidor por medio de una
petición HTTP Post.
petición HTTP Post.
 Para mantener el estado de los controles, se utiliza el View
Para mantener el estado de los controles, se utiliza el View
State. El estado de los controles se almacena en un campo
State. El estado de los controles se almacena en un campo
oculto de la página que viaja en cada postback; si no se tiene
oculto de la página que viaja en cada postback; si no se tiene
control de su tamaño puede dificultar la navegación del sitio
control de su tamaño puede dificultar la navegación del sitio
haciéndolo más lento. Para ello verifique el estado de la
haciéndolo más lento. Para ello verifique el estado de la
propiedad EnableViewState de todos los controles y utilice
propiedad EnableViewState de todos los controles y utilice
este mecanismo cuando sea necesario.
este mecanismo cuando sea necesario.
 un evento que se produce en el formulario web cuando es
un evento que se produce en el formulario web cuando es
mostrado en el explorador cliente, genera un POST hacia el
mostrado en el explorador cliente, genera un POST hacia el
servidor y una respuesta. Este ida y vuelta dentro de un
servidor y una respuesta. Este ida y vuelta dentro de un
mismo formulario web se llama
mismo formulario web se llama postback
postback.
.
Eventos de un webform
Eventos de un webform
 Cada vez que se pide una página se construye la página junto
Cada vez que se pide una página se construye la página junto
con todos sus controles y se destruye después de que se envié
con todos sus controles y se destruye después de que se envié
al navegador para aumentar la capacidad del servidor.
al navegador para aumentar la capacidad del servidor.
 Los controles de servidor mantienen sus propiedades
Los controles de servidor mantienen sus propiedades
mediante dos mecanismos
mediante dos mecanismos
 Procesamiento automático de variables del post
Procesamiento automático de variables del post
 Viewstate: variable de formulario oculta
Viewstate: variable de formulario oculta
 Soluciona el problema de que se limpien los controles cuando
Soluciona el problema de que se limpien los controles cuando
viaja entre el servidor y el cliente.
viaja entre el servidor y el cliente.
 Cada petición se actualiza el control
Cada petición se actualiza el control
Estado de un webform
Estado de un webform
 Los controles de servidor de ASP.NET heredan de Control una
Los controles de servidor de ASP.NET heredan de Control una
propiedad denominada ViewState que les permite participar
propiedad denominada ViewState que les permite participar
fácilmente en el mantenimiento del estado. El ViewState es un
fácilmente en el mantenimiento del estado. El ViewState es un
diccionario en el que se almacenan pares de nombre y valor.
diccionario en el que se almacenan pares de nombre y valor.
El área de trabajo de la página ASP.NET conserva ViewState
El área de trabajo de la página ASP.NET conserva ViewState
en una variable de cadena que se envía al cliente y se recibe
en una variable de cadena que se envía al cliente y se recibe
de vuelta de él como variable oculta. Cuando se produce la
de vuelta de él como variable oculta. Cuando se produce la
devolución, el área de trabajo de la página analiza la cadena
devolución, el área de trabajo de la página analiza la cadena
de entrada de la variable oculta y establece la propiedad
de entrada de la variable oculta y establece la propiedad
ViewState de cada control. Si en lugar de un campo privado un
ViewState de cada control. Si en lugar de un campo privado un
control utiliza ViewState para datos de propiedad, la
control utiliza ViewState para datos de propiedad, la
propiedad se conservará automáticamente entre los trayectos
propiedad se conservará automáticamente entre los trayectos
de ida y vuelta hacia el cliente. Si una propiedad no se
de ida y vuelta hacia el cliente. Si una propiedad no se
conserva en ViewState, es recomendable especificar su valor
conserva en ViewState, es recomendable especificar su valor
predeterminado en la devolución.
predeterminado en la devolución.
Que es el View State
Que es el View State
Solución de problemas de
Solución de problemas de
rendimiento en View State
rendimiento en View State
 Los programadores de controles deben tener en cuenta que
Los programadores de controles deben tener en cuenta que
todos los datos contenidos en ViewState recorren
todos los datos contenidos en ViewState recorren
automáticamente un trayecto de ida y vuelta hasta el cliente.
automáticamente un trayecto de ida y vuelta hasta el cliente.
Estos trayectos suponen una carga adicional para el rendimiento,
Estos trayectos suponen una carga adicional para el rendimiento,
por lo que es importante hacer un uso razonable de ViewState.
por lo que es importante hacer un uso razonable de ViewState.
Enviar gran cantidad de datos a través de Internet puede generar
Enviar gran cantidad de datos a través de Internet puede generar
grandes problemas en los tiempos y en el ancho de banda. Para
grandes problemas en los tiempos y en el ancho de banda. Para
solucionar estos problemas tenemos algunas opciones:
solucionar estos problemas tenemos algunas opciones:
 Deshabilitar el View State de los controles Web que sean necesarios
Deshabilitar el View State de los controles Web que sean necesarios
configurando la propiedad EnableViewState en falso.
configurando la propiedad EnableViewState en falso.
 Deshabilitar el View State para la pagina entera configurando la
Deshabilitar el View State para la pagina entera configurando la
propiedad EnableViewState a falso en al directiva @Page.
propiedad EnableViewState a falso en al directiva @Page.
 Guardar el View State en el servidor en lugar de ocultarlo en campo de
Guardar el View State en el servidor en lugar de ocultarlo en campo de
formularios.
formularios.
Páginas Maestras
Páginas Maestras
 Definición
Definición
 Página Maestra
Página Maestra 
 estructura heredable
estructura heredable
 Página Contenido
Página Contenido 
 personalizas cada página
personalizas cada página
 Beneficios
Beneficios
 Sitio web con entorno consistente
Sitio web con entorno consistente
 Ahorro de tiempo de programación
Ahorro de tiempo de programación
 Podemos tener varias páginas maestras en un proyecto
Podemos tener varias páginas maestras en un proyecto
 Añadir una página Maestra
Añadir una página Maestra
 Añadir desde Explorador de Soluciones un nuevo archivo index.Master
Añadir desde Explorador de Soluciones un nuevo archivo index.Master
 Añadir una página de Contenido
Añadir una página de Contenido
 Añadir desde el explorador de soluciones un nuevo archivo del tipo
Añadir desde el explorador de soluciones un nuevo archivo del tipo
WebForm activando la casilla Seleccionar página maestra
WebForm activando la casilla Seleccionar página maestra
Programación ASP.NET
Programación ASP.NET
32
32
Webgrafía & Licencia:
Webgrafía & Licencia:
 Textos tomados, corregidos y modificados de diferentes páginas
Textos tomados, corregidos y modificados de diferentes páginas
de Internet, tutoriales y documentos.
de Internet, tutoriales y documentos.
 Este documento se encuentra bajo Licencia Creative Commons
Este documento se encuentra bajo Licencia Creative Commons
2.5 Argentina (BY-NC-SA), por la cual se permite su exhibición,
2.5 Argentina (BY-NC-SA), por la cual se permite su exhibición,
distribución, copia y posibilita hacer obras derivadas a partir de
distribución, copia y posibilita hacer obras derivadas a partir de
la misma, siempre y cuando se cite la autoría del
la misma, siempre y cuando se cite la autoría del Prof. Matías E.
Prof. Matías E.
García
García y sólo podrá distribuir la obra derivada resultante bajo
y sólo podrá distribuir la obra derivada resultante bajo
una licencia idéntica a ésta.
una licencia idéntica a ésta.

.
.

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Programacion web-Lenguajes del lado del servidor
Programacion web-Lenguajes del lado del servidorProgramacion web-Lenguajes del lado del servidor
Programacion web-Lenguajes del lado del servidor
 
Soap eduardo cano
Soap  eduardo canoSoap  eduardo cano
Soap eduardo cano
 
Introduccion a php
Introduccion a phpIntroduccion a php
Introduccion a php
 
introduccion al Lenguaje php
introduccion al Lenguaje phpintroduccion al Lenguaje php
introduccion al Lenguaje php
 
EQUIPO 2,LAS AGUILAS
EQUIPO 2,LAS AGUILASEQUIPO 2,LAS AGUILAS
EQUIPO 2,LAS AGUILAS
 
SOAP y Web Services
SOAP y Web ServicesSOAP y Web Services
SOAP y Web Services
 
Presentacion remobjects
Presentacion remobjectsPresentacion remobjects
Presentacion remobjects
 
Web Services
Web ServicesWeb Services
Web Services
 
Clase 2 Lenguajes de Programación Web
Clase 2 Lenguajes de Programación WebClase 2 Lenguajes de Programación Web
Clase 2 Lenguajes de Programación Web
 
Php ppt
Php pptPhp ppt
Php ppt
 
Programacion web c5 programacion del lado servidor
Programacion web c5 programacion del lado servidorProgramacion web c5 programacion del lado servidor
Programacion web c5 programacion del lado servidor
 
Php
PhpPhp
Php
 
Manual de PHP Basico
Manual de PHP BasicoManual de PHP Basico
Manual de PHP Basico
 
Desarrollo de Aplicaciones Web II - Sesión 01 - Introducción
Desarrollo de Aplicaciones Web II - Sesión 01 - IntroducciónDesarrollo de Aplicaciones Web II - Sesión 01 - Introducción
Desarrollo de Aplicaciones Web II - Sesión 01 - Introducción
 
Clase 4 JavaScript Básico
Clase 4 JavaScript BásicoClase 4 JavaScript Básico
Clase 4 JavaScript Básico
 
Arquitectura REST
Arquitectura RESTArquitectura REST
Arquitectura REST
 
Clase 1 Introducción al Desarrollo Web
Clase 1 Introducción al Desarrollo WebClase 1 Introducción al Desarrollo Web
Clase 1 Introducción al Desarrollo Web
 
REST, JERSEY & SOAP
REST, JERSEY & SOAPREST, JERSEY & SOAP
REST, JERSEY & SOAP
 
API REST conceptos (Rails-api)
API REST conceptos (Rails-api)API REST conceptos (Rails-api)
API REST conceptos (Rails-api)
 
Arquitectura Rest
Arquitectura RestArquitectura Rest
Arquitectura Rest
 

Similar a Desarrollo web con_asp.net 2.1

Microsoft Asp. Net [Asp.Net - Parte 2]
Microsoft Asp. Net [Asp.Net - Parte 2]Microsoft Asp. Net [Asp.Net - Parte 2]
Microsoft Asp. Net [Asp.Net - Parte 2]Antonio Torres
 
Dce2 Introduccion Asp.Net
Dce2 Introduccion Asp.NetDce2 Introduccion Asp.Net
Dce2 Introduccion Asp.NetEsteban Soraire
 
U7 d. p. web
U7 d. p. webU7 d. p. web
U7 d. p. webisabbg
 
Intro a ASP.NET
Intro a ASP.NETIntro a ASP.NET
Intro a ASP.NETwilliamsm
 
Presentacion sesion 3 en MPA del CEU por Pablo de Castro
Presentacion sesion 3 en MPA del CEU por Pablo de CastroPresentacion sesion 3 en MPA del CEU por Pablo de Castro
Presentacion sesion 3 en MPA del CEU por Pablo de CastroPablo De Castro
 
Yeison fabian
Yeison fabianYeison fabian
Yeison fabianJhohan Cx
 
Programación en Internet
Programación en InternetProgramación en Internet
Programación en InternetFernando Solis
 
Juan sebastian
Juan sebastianJuan sebastian
Juan sebastianJhohan Cx
 
Introducción ASP .NET
Introducción ASP .NET Introducción ASP .NET
Introducción ASP .NET Universidad
 
Sistemas Distribuidos basados en la Web
Sistemas Distribuidos basados en la WebSistemas Distribuidos basados en la Web
Sistemas Distribuidos basados en la WebTensor
 
Clase17(introduccion a la web)
Clase17(introduccion a la web)Clase17(introduccion a la web)
Clase17(introduccion a la web)Tensor
 
Michael steven
Michael stevenMichael steven
Michael stevenJhohan Cx
 

Similar a Desarrollo web con_asp.net 2.1 (20)

Microsoft Asp. Net [Asp.Net - Parte 2]
Microsoft Asp. Net [Asp.Net - Parte 2]Microsoft Asp. Net [Asp.Net - Parte 2]
Microsoft Asp. Net [Asp.Net - Parte 2]
 
Desarrollo web
Desarrollo webDesarrollo web
Desarrollo web
 
Dce2 Introduccion Asp.Net
Dce2 Introduccion Asp.NetDce2 Introduccion Asp.Net
Dce2 Introduccion Asp.Net
 
U7 d. p. web
U7 d. p. webU7 d. p. web
U7 d. p. web
 
Tecnologías Web
Tecnologías WebTecnologías Web
Tecnologías Web
 
Intro a ASP.NET
Intro a ASP.NETIntro a ASP.NET
Intro a ASP.NET
 
Trabajo de investigacion n°01
Trabajo de investigacion n°01Trabajo de investigacion n°01
Trabajo de investigacion n°01
 
Presentacion sesion 3 en MPA del CEU por Pablo de Castro
Presentacion sesion 3 en MPA del CEU por Pablo de CastroPresentacion sesion 3 en MPA del CEU por Pablo de Castro
Presentacion sesion 3 en MPA del CEU por Pablo de Castro
 
Desarrollo web
Desarrollo webDesarrollo web
Desarrollo web
 
GOOGLE ESTANDARES EJEMPLOS
GOOGLE ESTANDARES EJEMPLOSGOOGLE ESTANDARES EJEMPLOS
GOOGLE ESTANDARES EJEMPLOS
 
Yeison fabian
Yeison fabianYeison fabian
Yeison fabian
 
Programación en Internet
Programación en InternetProgramación en Internet
Programación en Internet
 
Presentacion 2.2
Presentacion 2.2Presentacion 2.2
Presentacion 2.2
 
Prog webuni3
Prog webuni3Prog webuni3
Prog webuni3
 
lenguaje web
lenguaje weblenguaje web
lenguaje web
 
Juan sebastian
Juan sebastianJuan sebastian
Juan sebastian
 
Introducción ASP .NET
Introducción ASP .NET Introducción ASP .NET
Introducción ASP .NET
 
Sistemas Distribuidos basados en la Web
Sistemas Distribuidos basados en la WebSistemas Distribuidos basados en la Web
Sistemas Distribuidos basados en la Web
 
Clase17(introduccion a la web)
Clase17(introduccion a la web)Clase17(introduccion a la web)
Clase17(introduccion a la web)
 
Michael steven
Michael stevenMichael steven
Michael steven
 

Último

Presentación Materiales para la Construcción.ppt
Presentación Materiales para la Construcción.pptPresentación Materiales para la Construcción.ppt
Presentación Materiales para la Construcción.pptCARLOSAXELVENTURAVID
 
DIAPOSITIVAS DRENAJE POSTURAL E INHALACIONES (3).pptx
DIAPOSITIVAS DRENAJE POSTURAL E INHALACIONES (3).pptxDIAPOSITIVAS DRENAJE POSTURAL E INHALACIONES (3).pptx
DIAPOSITIVAS DRENAJE POSTURAL E INHALACIONES (3).pptxjoselinepolar
 
Taller construcción de Prototipos Uno uML
Taller construcción de Prototipos Uno uMLTaller construcción de Prototipos Uno uML
Taller construcción de Prototipos Uno uMLAderMogollonLuna
 
PPT SESION 5 ARTE Y CREATIVIDAD (1).pptx
PPT SESION 5 ARTE Y CREATIVIDAD (1).pptxPPT SESION 5 ARTE Y CREATIVIDAD (1).pptx
PPT SESION 5 ARTE Y CREATIVIDAD (1).pptxNeymaRojasperez1
 
PPT obligaciones ambientales oefa minan.pptx
PPT obligaciones ambientales oefa minan.pptxPPT obligaciones ambientales oefa minan.pptx
PPT obligaciones ambientales oefa minan.pptxDanmherJoelAlmironPu
 
TALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdf
TALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdfTALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdf
TALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdfMiguelGomez900779
 

Último (6)

Presentación Materiales para la Construcción.ppt
Presentación Materiales para la Construcción.pptPresentación Materiales para la Construcción.ppt
Presentación Materiales para la Construcción.ppt
 
DIAPOSITIVAS DRENAJE POSTURAL E INHALACIONES (3).pptx
DIAPOSITIVAS DRENAJE POSTURAL E INHALACIONES (3).pptxDIAPOSITIVAS DRENAJE POSTURAL E INHALACIONES (3).pptx
DIAPOSITIVAS DRENAJE POSTURAL E INHALACIONES (3).pptx
 
Taller construcción de Prototipos Uno uML
Taller construcción de Prototipos Uno uMLTaller construcción de Prototipos Uno uML
Taller construcción de Prototipos Uno uML
 
PPT SESION 5 ARTE Y CREATIVIDAD (1).pptx
PPT SESION 5 ARTE Y CREATIVIDAD (1).pptxPPT SESION 5 ARTE Y CREATIVIDAD (1).pptx
PPT SESION 5 ARTE Y CREATIVIDAD (1).pptx
 
PPT obligaciones ambientales oefa minan.pptx
PPT obligaciones ambientales oefa minan.pptxPPT obligaciones ambientales oefa minan.pptx
PPT obligaciones ambientales oefa minan.pptx
 
TALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdf
TALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdfTALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdf
TALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdf
 

Desarrollo web con_asp.net 2.1

  • 1. DESARROLLO WEB CON DESARROLLO WEB CON ASP.NET ASP.NET
  • 2.  HTML (1991) HTML (1991)  Páginas estáticas orientadas al contenido Páginas estáticas orientadas al contenido  CGI (1993) CGI (1993)  (Common Gateway Interface) (Common Gateway Interface) Ejecutables que generan Ejecutables que generan HTML dinámicamente HTML dinámicamente  Versión mejorada: ISAPI. L Versión mejorada: ISAPI. La aplicación Web no era un a aplicación Web no era un ejecutable independiente, sino un plug-in. En caso de ejecutable independiente, sino un plug-in. En caso de Windows se trataba de una DLL que era invocada en el Windows se trataba de una DLL que era invocada en el propio contexto del servidor Web. propio contexto del servidor Web.  ASP (1996), PHP (1997), JSP (1999) ASP (1996), PHP (1997), JSP (1999)  Páginas HTML Páginas HTML que que incluyen código script dinámico incluyen código script dinámico Historia del desarrollo web Historia del desarrollo web
  • 3. www.profmatiasgar www.profmatiasgar cia.com.ar cia.com.ar IP = IP = 173.237.190.67 173.237.190.67 http:// http:// www.profmatiasgarci www.profmatiasgarci a.com.ar/apweb.html a.com.ar/apweb.html http:// http:// www.profmatiasgarci www.profmatiasgarci a.com.ar/apweb.html a.com.ar/apweb.html IP=173.237.190.67 IP=173.237.190.67 Puerto: 80 Puerto: 80 IP=173.237.190.67 IP=173.237.190.67 Puerto: 80 Puerto: 80 apweb.html apweb.html <html> <html> <body> <body> Bienvenidos al Bienvenidos al Curso ASP.NET Curso ASP.NET </body> </body> </html> </html> apweb.html apweb.html <html> <html> <body> <body> Bienvenidos al Bienvenidos al Curso ASP.NET Curso ASP.NET </body> </body> </html> </html> Internet Internet DNS DNS Servidor Servidor Cliente Cliente HTTP Request HTTP Request HTTP Response HTTP Response Aplicaciones Web Aplicaciones Web
  • 4. Aplicaciones Web Aplicaciones Web  Una aplicación web es un programa que genera archivos en HTML Una aplicación web es un programa que genera archivos en HTML (páginas) que se transmiten por medio del protocolo HTTP de un servidor (páginas) que se transmiten por medio del protocolo HTTP de un servidor al cliente y viceversa, brindando distintas funcionalidades a un usuario al cliente y viceversa, brindando distintas funcionalidades a un usuario final. final.  El HTTP define como los navegadores y los servidores Web se El HTTP define como los navegadores y los servidores Web se comunican uno con otro. comunican uno con otro.  En una aplicación web, el componente principal es el HTML Form, que es En una aplicación web, el componente principal es el HTML Form, que es el elemento de html que contiene los controles de la interfaz de usuario el elemento de html que contiene los controles de la interfaz de usuario de cada página y captura la entrada de datos del usuario. El HTML Form de cada página y captura la entrada de datos del usuario. El HTML Form es la porción de la página que es enviada a través del protocolo HTTP al es la porción de la página que es enviada a través del protocolo HTTP al servidor para procesar el pedido realizado por el usuario. servidor para procesar el pedido realizado por el usuario.
  • 5.  Un servidor web es un programa que ejecuta una aplicación Un servidor web es un programa que ejecuta una aplicación web que genera las páginas disponibles para ser visitadas web que genera las páginas disponibles para ser visitadas por los usuarios de la red. A la computadora que ejecuta este por los usuarios de la red. A la computadora que ejecuta este programa también se lo llama servidor web. programa también se lo llama servidor web.  Internet Information Server (IIS), es el servidor Web de Internet Information Server (IIS), es el servidor Web de Microsoft que corre sobre plataformas Windows. Los servicios Microsoft que corre sobre plataformas Windows. Los servicios que ofrece son: FTP, SMTP, NNTP y HTTP/HTTPS que ofrece son: FTP, SMTP, NNTP y HTTP/HTTPS  las páginas ASP tienen la extensión .ASP y son procesadas las páginas ASP tienen la extensión .ASP y son procesadas por la DLL ASP.DLL y sin embargo las páginas ASP.Net poseen por la DLL ASP.DLL y sin embargo las páginas ASP.Net poseen la extensión .ASPX y son procesadas por el entorno de la extensión .ASPX y son procesadas por el entorno de ejecución .NET Framework, que las transforma en el código ejecución .NET Framework, que las transforma en el código intermedio, representado en este caso por la DLL intermedio, representado en este caso por la DLL ASPNET_ISAPI.DLL. ASPNET_ISAPI.DLL. Servidor Web Servidor Web
  • 6. Hypertext Transfer Protocol (HTTP) Hypertext Transfer Protocol (HTTP)  HTTP es un protocolo de Internet que define la sintaxis y la HTTP es un protocolo de Internet que define la sintaxis y la semántica que deben utilizar los navegadores y los servidores semántica que deben utilizar los navegadores y los servidores Web para poder comunicarse Web para poder comunicarse  Esta basado en texto y es transmitido sobre conexiones TCP Esta basado en texto y es transmitido sobre conexiones TCP  Es un protocolo orientado a transacciones y sigue el esquema Es un protocolo orientado a transacciones y sigue el esquema petición-respuesta entre un cliente y un servidor. Al cliente petición-respuesta entre un cliente y un servidor. Al cliente que efectúa la petición (un navegador web o un spider) se lo que efectúa la petición (un navegador web o un spider) se lo conoce como "user agent" (agente del usuario). A la conoce como "user agent" (agente del usuario). A la información transmitida se la llama recurso y se la identifica información transmitida se la llama recurso y se la identifica mediante un localizador uniforme de recursos (URL). Los mediante un localizador uniforme de recursos (URL). Los recursos pueden ser archivos, el resultado de la ejecución de recursos pueden ser archivos, el resultado de la ejecución de un programa, una consulta a una base de datos, la traducción un programa, una consulta a una base de datos, la traducción automática de un documento, etc. automática de un documento, etc.
  • 7. HTTP Request HTTP Request GET GET /apweb.html /apweb.html HTTP/1.1 HTTP/1.1 Accept: */* Accept: */* Accept-Language:... Accept-Language:... Accept-Encoding:... Accept-Encoding:... If-Modified-Since:... If-Modified-Since:... If-None-Match:... If-None-Match:... User-Agent: Mozilla/4.0... User-Agent: Mozilla/4.0... Host: Host: www.profmatiasgarcia.com.ar www.profmatiasgarcia.com.ar Connection: Keep-Alive Connection: Keep-Alive [blank line] [blank line] GET GET /apweb.html /apweb.html HTTP/1.1 HTTP/1.1 Accept: */* Accept: */* Accept-Language:... Accept-Language:... Accept-Encoding:... Accept-Encoding:... If-Modified-Since:... If-Modified-Since:... If-None-Match:... If-None-Match:... User-Agent: Mozilla/4.0... User-Agent: Mozilla/4.0... Host: Host: www.profmatiasgarcia.com.ar www.profmatiasgarcia.com.ar Connection: Keep-Alive Connection: Keep-Alive [blank line] [blank line]
  • 8. HTTP Response HTTP Response HTTP/1.1 HTTP/1.1 200 200 OK OK Server: Microsoft-IIS/5.0 Server: Microsoft-IIS/5.0 Date: ... Date: ... Content-Type: Content-Type: text/html text/html Accept-Ranges: bytes Accept-Ranges: bytes Last-Modified: ... Last-Modified: ... ETag: ... ETag: ... Content-Length: 46 Content-Length: 46 [blank line] [blank line] <html> <html> <body> <body> Bienvenidos al Curso ASP.NET Bienvenidos al Curso ASP.NET </body> </body> </html> </html> HTTP/1.1 HTTP/1.1 200 200 OK OK Server: Microsoft-IIS/5.0 Server: Microsoft-IIS/5.0 Date: ... Date: ... Content-Type: Content-Type: text/html text/html Accept-Ranges: bytes Accept-Ranges: bytes Last-Modified: ... Last-Modified: ... ETag: ... ETag: ... Content-Length: 46 Content-Length: 46 [blank line] [blank line] <html> <html> <body> <body> Bienvenidos al Curso ASP.NET Bienvenidos al Curso ASP.NET </body> </body> </html> </html>
  • 9. HyperText Markup Language HTML HyperText Markup Language HTML  Lenguaje de marcado predominante para la elaboración de Lenguaje de marcado predominante para la elaboración de páginas web que se utiliza para describir y traducir la páginas web que se utiliza para describir y traducir la estructura y la información en forma de texto, así como para estructura y la información en forma de texto, así como para complementar el texto con objetos tales como imágenes. complementar el texto con objetos tales como imágenes.  El HTML se escribe en forma de «etiquetas», rodeadas por El HTML se escribe en forma de «etiquetas», rodeadas por corchetes angulares (<,>), por ejemplo <tag> …. </tag>. corchetes angulares (<,>), por ejemplo <tag> …. </tag>.  HTML también puede describir, hasta un cierto punto, la HTML también puede describir, hasta un cierto punto, la apariencia de un documento, y puede incluir un script (por apariencia de un documento, y puede incluir un script (por ejemplo JavaScript), el cual puede afectar el comportamiento ejemplo JavaScript), el cual puede afectar el comportamiento de navegadores web y otros procesadores de HTML. de navegadores web y otros procesadores de HTML.
  • 10. HTML Forms HTML Forms  En el corazón de toda aplicación Web están los HTML Forms En el corazón de toda aplicación Web están los HTML Forms  Un HTML Form es la porción de un documento HTML que Un HTML Form es la porción de un documento HTML que aparece entre las etiquetas <form></form> aparece entre las etiquetas <form></form>
  • 11.  Las páginas ASP.Net (Active Server Pages), también llamadas Las páginas ASP.Net (Active Server Pages), también llamadas páginas activas o dinámicas, son páginas que contienen código páginas activas o dinámicas, son páginas que contienen código HTML, script de cliente y un código que se ejecuta en el servidor, HTML, script de cliente y un código que se ejecuta en el servidor, dando como resultado código HTML. Por lo tanto al cargar una dando como resultado código HTML. Por lo tanto al cargar una página ASP.Net en nuestro navegador, en realidad no estamos página ASP.Net en nuestro navegador, en realidad no estamos cargando la página ASP.Net como tal, sino el resultado de la cargando la página ASP.Net como tal, sino el resultado de la ejecución de la página, es decir la salida de la página ASP.Net, que ejecución de la página, es decir la salida de la página ASP.Net, que se trata de código HTML. Es decir, son páginas que se ejecutan en el se trata de código HTML. Es decir, son páginas que se ejecutan en el servidor enviando como resultado al cliente código HTML. servidor enviando como resultado al cliente código HTML.  Podemos definir ASP.Net como el entorno de desarrollo incluido en Podemos definir ASP.Net como el entorno de desarrollo incluido en la plataforma .NET de Microsoft, que nos permite desarrollar la plataforma .NET de Microsoft, que nos permite desarrollar completas aplicaciones Web que se ejecutarán sobre el entorno completas aplicaciones Web que se ejecutarán sobre el entorno ofrecido por el .NET Framework ofrecido por el .NET Framework Qué es ASP.Net? Qué es ASP.Net?
  • 12.  ASP.Net es un “Marco” (framework) para programar ASP.Net es un “Marco” (framework) para programar aplicaciones web, de un modo similar al que se programan las aplicaciones web, de un modo similar al que se programan las aplicaciones windows. El componente principal son los aplicaciones windows. El componente principal son los Web Web Forms Forms (formularios web) que permiten, entre otras cosas, (formularios web) que permiten, entre otras cosas, separar la interfaz del usuario de la funcionalidad de la separar la interfaz del usuario de la funcionalidad de la aplicación. aplicación.  ASP.Net no es un lenguaje de programación, sino que es un ASP.Net no es un lenguaje de programación, sino que es un entorno de programación o tecnología de desarrollo, pero no es entorno de programación o tecnología de desarrollo, pero no es un lenguaje. De hecho ASP.Net soporta distintos lenguajes un lenguaje. De hecho ASP.Net soporta distintos lenguajes como Visual Basic.Net, C# o JScript. como Visual Basic.Net, C# o JScript.  ASP.Net permite generar aplicaciones web con el paradigma de ASP.Net permite generar aplicaciones web con el paradigma de Windows Windows Qué es ASP.Net? Qué es ASP.Net?
  • 13. Base Class Library Base Class Library Common Language Specification Common Language Specification Common Language Runtime Common Language Runtime ADO.NET, XML, Enterprise Services ADO.NET, XML, Enterprise Services VB VB C++ C++ C# C# Visual Studio.NET Visual Studio.NET ASP.NET: Web Services ASP.NET: Web Services and Web Forms and Web Forms JScript JScript … … Windows Windows Forms Forms Qué es ASP.Net? Qué es ASP.Net?
  • 14.  Formularios Web o páginas .ASPX Formularios Web o páginas .ASPX: Proveen de la interfase : Proveen de la interfase visual. No tienen código ejecutable. visual. No tienen código ejecutable.  Páginas de Code-behind Páginas de Code-behind: Están asociadas con cada formulario : Están asociadas con cada formulario y son las que proveen del código ejecutable del lado del y son las que proveen del código ejecutable del lado del servidor. servidor.  Archivos de Configuración Archivos de Configuración: Son archivos que permiten : Son archivos que permiten configurar la aplicación, por ejemplo el archivo Web.config y configurar la aplicación, por ejemplo el archivo Web.config y el servidor por ejemplo el archivo machine.config. el servidor por ejemplo el archivo machine.config.  Global.asax Global.asax: Es un archivo que contiene código. Este código : Es un archivo que contiene código. Este código responde a eventos que se disparan en la aplicación Web. responde a eventos que se disparan en la aplicación Web.  Referencias a servicios web xml. Referencias a servicios web xml.  Conectividad a bases de datos. Conectividad a bases de datos.  Sistema de caché. Sistema de caché. Componentes de las aplicaciones Componentes de las aplicaciones Web ASP.Net Web ASP.Net
  • 15. Web Forms Web Forms  Combinación de código HTML + controles que se ejecutan en el Combinación de código HTML + controles que se ejecutan en el servidor servidor  Pueden usarse para crear páginas Web programables que sirvan Pueden usarse para crear páginas Web programables que sirvan como interfaz de usuario de las aplicaciones Web. como interfaz de usuario de las aplicaciones Web.  Extensión .aspx Extensión .aspx  Formularios semejantes a los Windows Forms pero en Web Formularios semejantes a los Windows Forms pero en Web  Separación lógica – diseño Separación lógica – diseño  Componentes gráficos Componentes gráficos  Estado Estado  Eventos Eventos  Propiedades Propiedades  Admiten cualquier lenguaje compatible con Common Language Admiten cualquier lenguaje compatible con Common Language Runtime de .NET, incluidos  Visual Basic,  Visual C# y  JScript.NET. Runtime de .NET, incluidos  Visual Basic,  Visual C# y  JScript.NET.
  • 16.  Una Página Web ASP.Net consta de dos partes: Una Página Web ASP.Net consta de dos partes:  Elementos visuales, que incluyen controles del servidor y texto estático. Elementos visuales, que incluyen controles del servidor y texto estático.  Programación lógica para la página, que incluye manejador de eventos Programación lógica para la página, que incluye manejador de eventos y el resto del código. y el resto del código.  Modelos de Página Modelos de Página  Modelo de Página Single-File: el HTML y el código de programación se Modelo de Página Single-File: el HTML y el código de programación se almacena en el mismo .aspx. El código de programación es un bloque almacena en el mismo .aspx. El código de programación es un bloque que contiene el atributo runat=“server”, para marcar al código como que contiene el atributo runat=“server”, para marcar al código como código ejecutable por ASP.NET código ejecutable por ASP.NET  Modelo de Página Code-Behind: el HTML esta en un archivo .aspx y el Modelo de Página Code-Behind: el HTML esta en un archivo .aspx y el código de programación en otro archivo .aspx. código de programación en otro archivo .aspx. Modelo de Código de Páginas Web Modelo de Código de Páginas Web
  • 17. Atributos de una página Atributos de una página  Tres niveles de atributos Tres niveles de atributos  Page, Definen funciones globales Page, Definen funciones globales <%@ Page Language="C#" AutoEventWireup="true" <%@ Page Language="C#" AutoEventWireup="true" CodeFile="inicio.aspx.cs" Inherits="inicio" %> CodeFile="inicio.aspx.cs" Inherits="inicio" %>  Código, gestión de eventos del formulario Código, gestión de eventos del formulario <script> .... </script> <script> .... </script>  LayOut, presentación de los datos LayOut, presentación de los datos Body, Como se va a mostrar la página Body, Como se va a mostrar la página < body> < body> .... .... </body> </body> Form, como se procesan grupos de control Form, como se procesan grupos de control < form id=“Form1” method=“post” runat=“server”> < form id=“Form1” method=“post” runat=“server”> .... .... </form> </form>
  • 18. Etiqueta <@ Page > Etiqueta <@ Page >  Language Language  Lenguaje en el que está escrita Lenguaje en el que está escrita  Vb, c#, jscrip Vb, c#, jscrip  CodeFile CodeFile  Qué página contiene el código Qué página contiene el código  Inherits Inherits  Clase con la que va a trabajar Clase con la que va a trabajar  AutoEventWireup AutoEventWireup  Si hay que especificar los procedimientos para los eventos o los toma Si hay que especificar los procedimientos para los eventos o los toma dependiendo del nombre del procedimientos dependiendo del nombre del procedimientos
  • 19. Etiqueta <script> Etiqueta <script>  Código para ejecutar eventos del cliente Código para ejecutar eventos del cliente  <script runat=“server”> el evento se ejecuta en el servidor <script runat=“server”> el evento se ejecuta en el servidor  Se recomienda programar los eventos de servidor en el Se recomienda programar los eventos de servidor en el archivo de código asociado para diferenciarlo del código que archivo de código asociado para diferenciarlo del código que va a interpretar el navegador va a interpretar el navegador
  • 20. Etiqueta <form> Etiqueta <form>  No tiene que ver con el concepto de formulario. No tiene que ver con el concepto de formulario.  Puede tener varios <form> .. </form> en una web pero solo Puede tener varios <form> .. </form> en una web pero solo uno que se ejecute en el lado servidor uno que se ejecute en el lado servidor  Method, como se envían los valores al servidor Method, como se envían los valores al servidor  Post, datos se envían en parejas nombre/valor dentro de la petición Post, datos se envían en parejas nombre/valor dentro de la petición http http  Get, datos se pasan como un string Get, datos se pasan como un string  Runat, identifica si se devuelve información al servidor Runat, identifica si se devuelve información al servidor  Runat=“server”, envía la información al servidor Runat=“server”, envía la información al servidor  No tiene, se ejecuta como un formulario HTML No tiene, se ejecuta como un formulario HTML
  • 21. Tipos de controles servidor Tipos de controles servidor  HTML server controls HTML server controls  Son elementos HTML que contienen atributos que los hacen visibles (y Son elementos HTML que contienen atributos que los hacen visibles (y programables) en un servidor. Exponen un modelo de objeto que se programables) en un servidor. Exponen un modelo de objeto que se relacionan muy estrechamente con los elementos HTML que procesan. relacionan muy estrechamente con los elementos HTML que procesan.  Añadir runat=“server” para tratarlo en el modo servidor Añadir runat=“server” para tratarlo en el modo servidor  Web server controls Web server controls  Controles con más funciones incorporadas. incluyen no sólo controles de Controles con más funciones incorporadas. incluyen no sólo controles de tipo formulario como botones y cuadros de texto, sino también controles tipo formulario como botones y cuadros de texto, sino también controles con fines especiales como un calendario. Los controles de servidor Web con fines especiales como un calendario. Los controles de servidor Web son más abstractos que los controles de servidor HTML pues su modelo son más abstractos que los controles de servidor HTML pues su modelo de objetos no refleja necesariamente la sintaxis HTML. de objetos no refleja necesariamente la sintaxis HTML.  Integrados, equivalentes a los controles HTML Integrados, equivalentes a los controles HTML  Validación, testear los datos introducidos Validación, testear los datos introducidos  Enriquecidos, funcionalidad avanzada Enriquecidos, funcionalidad avanzada  Enlazados a datos Enlazados a datos  Controles Web, presentación de datos en navegadores Controles Web, presentación de datos en navegadores
  • 22. Controles de servidor HTML Controles de servidor HTML  Acceso desde el lado de servidor Acceso desde el lado de servidor  Las propiedades son todas de tipo String, por lo que solo se detecta Las propiedades son todas de tipo String, por lo que solo se detecta los errores cuando se ejecuta los errores cuando se ejecuta  Están dentro de una etiqueta Están dentro de una etiqueta <Form ... Runat=“server”> <Form ... Runat=“server”>  Namespace System.Web.UI.HTMLControls Namespace System.Web.UI.HTMLControls  Permite actualizar rápidamente una página html con nuevas Permite actualizar rápidamente una página html con nuevas funcionalidades funcionalidades <input type=“text” id=“textname” runat=“server”> <input type=“text” id=“textname” runat=“server”>  Ofrecen las funciones siguientes: Ofrecen las funciones siguientes:  Un modelo de objetos que pueda volver a programar en el servidor con las técnicas habituales Un modelo de objetos que pueda volver a programar en el servidor con las técnicas habituales orientadas a objetos. orientadas a objetos.  Un conjunto de eventos para los que pueda escribir controles de eventos de la misma forma que lo Un conjunto de eventos para los que pueda escribir controles de eventos de la misma forma que lo haría en un formulario basado en cliente, con la excepción de que un evento se controla en código haría en un formulario basado en cliente, con la excepción de que un evento se controla en código del servidor. del servidor.  Mantenimiento automático del estado del control. Si el formulario realiza una acción de ida y Mantenimiento automático del estado del control. Si el formulario realiza una acción de ida y vuelta al servidor, los valores que el usuario escriba en los controles de servidor HTML se vuelta al servidor, los valores que el usuario escriba en los controles de servidor HTML se mantendrán automáticamente cuando la página se envíe de vuelta al explorador. mantendrán automáticamente cuando la página se envíe de vuelta al explorador.  Compatibilidad con estilos HTML 4.0 si la página de formularios Web Forms se muestra en un Compatibilidad con estilos HTML 4.0 si la página de formularios Web Forms se muestra en un explorador que admite hojas de estilos en cascada. explorador que admite hojas de estilos en cascada.
  • 23. HtmlImage HtmlImage HtmlImage HtmlImage HtmlInputControl HtmlInputControl HtmlInputControl HtmlInputControl System.Object System.Object System.Object System.Object System.Web.UI.Control System.Web.UI.Control System.Web.UI.Control System.Web.UI.Control HtmlInputFile HtmlInputFile HtmlInputFile HtmlInputFile HtmlInputHidden HtmlInputHidden HtmlInputHidden HtmlInputHidden HtmlInputImage HtmlInputImage HtmlInputImage HtmlInputImage HtmlInputRadioButton HtmlInputRadioButton HtmlInputRadioButton HtmlInputRadioButton HtmlInputText HtmlInputText HtmlInputText HtmlInputText HtmlInputButton HtmlInputButton HtmlInputButton HtmlInputButton HtmlInputCheckBox HtmlInputCheckBox HtmlInputCheckBox HtmlInputCheckBox HtmlContainerControl HtmlContainerControl HtmlContainerControl HtmlContainerControl HtmlControls HtmlControls HtmlControls HtmlControls HtmlForm HtmlForm HtmlForm HtmlForm HtmlGenericControl HtmlGenericControl HtmlGenericControl HtmlGenericControl HtmlSelect HtmlSelect HtmlSelect HtmlSelect HtmlTable HtmlTable HtmlTable HtmlTable HtmlTableCell HtmlTableCell HtmlTableCell HtmlTableCell HtmlTableRow HtmlTableRow HtmlTableRow HtmlTableRow HtmlTextArea HtmlTextArea HtmlTextArea HtmlTextArea HtmlAnchor HtmlAnchor HtmlAnchor HtmlAnchor HtmlButton HtmlButton HtmlButton HtmlButton <img> <img> <input type=file> <input type=file> <input type=hidden> <input type=hidden> <input type=image> <input type=image> <input type=radio> <input type=radio> <input type=text> <input type=text> <input type=button> <input type=button> <input type=checkbox> <input type=checkbox> <form> <form> <span>, <span>, <div>, <div>, <select> <select> <table> <table> <td>, <th> <td>, <th> <tr> <tr> <textarea> <textarea> <a> <a> <button> <button> Controles de servidor HTML Controles de servidor HTML
  • 24. Controles de servidor WEB Controles de servidor WEB  Creados para ASP.Net Creados para ASP.Net  No tienen funcionalidad si no tienen una etiqueta runat=“server” No tienen funcionalidad si no tienen una etiqueta runat=“server”  Propiedades son tipadas, permite detectar errores antes de Propiedades son tipadas, permite detectar errores antes de compilar compilar  Namespace System.Web.UI.WebControls Namespace System.Web.UI.WebControls  Ofrecen todas las funciones descritas anteriormente para los Ofrecen todas las funciones descritas anteriormente para los controles de servidor HTML (excepto la asignación uno a uno a controles de servidor HTML (excepto la asignación uno a uno a elementos HTML) y estas funciones adicionales: elementos HTML) y estas funciones adicionales:  Un modelo de objetos enriquecido que proporciona capacidades de programación de tipo Un modelo de objetos enriquecido que proporciona capacidades de programación de tipo seguro. seguro.  Detección automática del explorador. Detección automática del explorador.  La capacidad de definir su propia apariencia para el control mediante plantillas. La capacidad de definir su propia apariencia para el control mediante plantillas.  La capacidad de especificar si un evento del control provoca un envío inmediato al servidor o, La capacidad de especificar si un evento del control provoca un envío inmediato al servidor o, en su lugar, se almacena en caché y se activa cuando se envía el formulario. en su lugar, se almacena en caché y se activa cuando se envía el formulario.  Capacidad para pasar eventos de un control anidado (como un botón en una tabla) al control Capacidad para pasar eventos de un control anidado (como un botón en una tabla) al control contenedor. contenedor.  Los atributos no son los de los elementos HTML. En lugar de ello, son propiedades del control Los atributos no son los de los elementos HTML. En lugar de ello, son propiedades del control Web. Web.
  • 25. AdRotator AdRotator AdRotator AdRotator BaseDataList BaseDataList BaseDataList BaseDataList System.Object System.Object System.Object System.Object DataGrid DataGrid DataGrid DataGrid DataList DataList DataList DataList ListControl ListControl ListControl ListControl RadioButtonList RadioButtonList RadioButtonList RadioButtonList CheckBoxList CheckBoxList CheckBoxList CheckBoxList DropDownList DropDownList DropDownList DropDownList ListBox ListBox ListBox ListBox Panel Panel Panel Panel Table Table Table Table Repeater Repeater Repeater Repeater Xml Xml Xml Xml System.Web.UI.Control System.Web.UI.Control System.Web.UI.Control System.Web.UI.Control WebControls WebControls WebControls WebControls Button Button Button Button Calendar Calendar Calendar Calendar HyperLink HyperLink HyperLink HyperLink TextBox TextBox TextBox TextBox RadioButton RadioButton RadioButton RadioButton CheckBox CheckBox CheckBox CheckBox Label Label Label Label ImageButton ImageButton ImageButton ImageButton Image Image Image Image Controles de servidor WEB Controles de servidor WEB
  • 26. Eventos de servidor Eventos de servidor  Los controles pueden lanzar eventos Los controles pueden lanzar eventos  Ya sean un HtmlControl o un WebControl Ya sean un HtmlControl o un WebControl  Load, Click, TextChange, SelectedItemChange… Load, Click, TextChange, SelectedItemChange…  Posibilidad de procesamiento: Posibilidad de procesamiento:  En servidor En servidor  En cliente En cliente  Encolados hasta siguiente postback Encolados hasta siguiente postback  El cliente realiza una petición, el mensaje es recibido en el El cliente realiza una petición, el mensaje es recibido en el servidor, donde es analizado y atendido por el manejador de servidor, donde es analizado y atendido por el manejador de eventos que corresponda. Se arma la respuesta y el cliente eventos que corresponda. Se arma la respuesta y el cliente obtiene la información que ha solicitado (ya sea una nueva obtiene la información que ha solicitado (ya sea una nueva página, un mensaje, etc.) página, un mensaje, etc.)
  • 27. Server Server Cliente Web Cliente Web Analiza el mensaje Analiza el mensaje Analiza el mensaje Analiza el mensaje click click manejador manejador mensaje mensaje mensaje mensaje respuesta respuesta respuesta respuesta Llama al Llama al manejador manejador apropiado apropiado Modelo de Eventos Web Form Modelo de Eventos Web Form Eventos de un webform Eventos de un webform
  • 28.  Los eventos asociados con controles ASP.NET son generados Los eventos asociados con controles ASP.NET son generados en el cliente y atendidos en el servidor. Por este motivo, en el cliente y atendidos en el servidor. Por este motivo, ASP.NET necesita que la información para atender el evento ASP.NET necesita que la información para atender el evento del cliente sea transferida al servidor por medio de una del cliente sea transferida al servidor por medio de una petición HTTP Post. petición HTTP Post.  Para mantener el estado de los controles, se utiliza el View Para mantener el estado de los controles, se utiliza el View State. El estado de los controles se almacena en un campo State. El estado de los controles se almacena en un campo oculto de la página que viaja en cada postback; si no se tiene oculto de la página que viaja en cada postback; si no se tiene control de su tamaño puede dificultar la navegación del sitio control de su tamaño puede dificultar la navegación del sitio haciéndolo más lento. Para ello verifique el estado de la haciéndolo más lento. Para ello verifique el estado de la propiedad EnableViewState de todos los controles y utilice propiedad EnableViewState de todos los controles y utilice este mecanismo cuando sea necesario. este mecanismo cuando sea necesario.  un evento que se produce en el formulario web cuando es un evento que se produce en el formulario web cuando es mostrado en el explorador cliente, genera un POST hacia el mostrado en el explorador cliente, genera un POST hacia el servidor y una respuesta. Este ida y vuelta dentro de un servidor y una respuesta. Este ida y vuelta dentro de un mismo formulario web se llama mismo formulario web se llama postback postback. . Eventos de un webform Eventos de un webform
  • 29.  Cada vez que se pide una página se construye la página junto Cada vez que se pide una página se construye la página junto con todos sus controles y se destruye después de que se envié con todos sus controles y se destruye después de que se envié al navegador para aumentar la capacidad del servidor. al navegador para aumentar la capacidad del servidor.  Los controles de servidor mantienen sus propiedades Los controles de servidor mantienen sus propiedades mediante dos mecanismos mediante dos mecanismos  Procesamiento automático de variables del post Procesamiento automático de variables del post  Viewstate: variable de formulario oculta Viewstate: variable de formulario oculta  Soluciona el problema de que se limpien los controles cuando Soluciona el problema de que se limpien los controles cuando viaja entre el servidor y el cliente. viaja entre el servidor y el cliente.  Cada petición se actualiza el control Cada petición se actualiza el control Estado de un webform Estado de un webform
  • 30.  Los controles de servidor de ASP.NET heredan de Control una Los controles de servidor de ASP.NET heredan de Control una propiedad denominada ViewState que les permite participar propiedad denominada ViewState que les permite participar fácilmente en el mantenimiento del estado. El ViewState es un fácilmente en el mantenimiento del estado. El ViewState es un diccionario en el que se almacenan pares de nombre y valor. diccionario en el que se almacenan pares de nombre y valor. El área de trabajo de la página ASP.NET conserva ViewState El área de trabajo de la página ASP.NET conserva ViewState en una variable de cadena que se envía al cliente y se recibe en una variable de cadena que se envía al cliente y se recibe de vuelta de él como variable oculta. Cuando se produce la de vuelta de él como variable oculta. Cuando se produce la devolución, el área de trabajo de la página analiza la cadena devolución, el área de trabajo de la página analiza la cadena de entrada de la variable oculta y establece la propiedad de entrada de la variable oculta y establece la propiedad ViewState de cada control. Si en lugar de un campo privado un ViewState de cada control. Si en lugar de un campo privado un control utiliza ViewState para datos de propiedad, la control utiliza ViewState para datos de propiedad, la propiedad se conservará automáticamente entre los trayectos propiedad se conservará automáticamente entre los trayectos de ida y vuelta hacia el cliente. Si una propiedad no se de ida y vuelta hacia el cliente. Si una propiedad no se conserva en ViewState, es recomendable especificar su valor conserva en ViewState, es recomendable especificar su valor predeterminado en la devolución. predeterminado en la devolución. Que es el View State Que es el View State
  • 31. Solución de problemas de Solución de problemas de rendimiento en View State rendimiento en View State  Los programadores de controles deben tener en cuenta que Los programadores de controles deben tener en cuenta que todos los datos contenidos en ViewState recorren todos los datos contenidos en ViewState recorren automáticamente un trayecto de ida y vuelta hasta el cliente. automáticamente un trayecto de ida y vuelta hasta el cliente. Estos trayectos suponen una carga adicional para el rendimiento, Estos trayectos suponen una carga adicional para el rendimiento, por lo que es importante hacer un uso razonable de ViewState. por lo que es importante hacer un uso razonable de ViewState. Enviar gran cantidad de datos a través de Internet puede generar Enviar gran cantidad de datos a través de Internet puede generar grandes problemas en los tiempos y en el ancho de banda. Para grandes problemas en los tiempos y en el ancho de banda. Para solucionar estos problemas tenemos algunas opciones: solucionar estos problemas tenemos algunas opciones:  Deshabilitar el View State de los controles Web que sean necesarios Deshabilitar el View State de los controles Web que sean necesarios configurando la propiedad EnableViewState en falso. configurando la propiedad EnableViewState en falso.  Deshabilitar el View State para la pagina entera configurando la Deshabilitar el View State para la pagina entera configurando la propiedad EnableViewState a falso en al directiva @Page. propiedad EnableViewState a falso en al directiva @Page.  Guardar el View State en el servidor en lugar de ocultarlo en campo de Guardar el View State en el servidor en lugar de ocultarlo en campo de formularios. formularios.
  • 32. Páginas Maestras Páginas Maestras  Definición Definición  Página Maestra Página Maestra   estructura heredable estructura heredable  Página Contenido Página Contenido   personalizas cada página personalizas cada página  Beneficios Beneficios  Sitio web con entorno consistente Sitio web con entorno consistente  Ahorro de tiempo de programación Ahorro de tiempo de programación  Podemos tener varias páginas maestras en un proyecto Podemos tener varias páginas maestras en un proyecto  Añadir una página Maestra Añadir una página Maestra  Añadir desde Explorador de Soluciones un nuevo archivo index.Master Añadir desde Explorador de Soluciones un nuevo archivo index.Master  Añadir una página de Contenido Añadir una página de Contenido  Añadir desde el explorador de soluciones un nuevo archivo del tipo Añadir desde el explorador de soluciones un nuevo archivo del tipo WebForm activando la casilla Seleccionar página maestra WebForm activando la casilla Seleccionar página maestra Programación ASP.NET Programación ASP.NET 32 32
  • 33. Webgrafía & Licencia: Webgrafía & Licencia:  Textos tomados, corregidos y modificados de diferentes páginas Textos tomados, corregidos y modificados de diferentes páginas de Internet, tutoriales y documentos. de Internet, tutoriales y documentos.  Este documento se encuentra bajo Licencia Creative Commons Este documento se encuentra bajo Licencia Creative Commons 2.5 Argentina (BY-NC-SA), por la cual se permite su exhibición, 2.5 Argentina (BY-NC-SA), por la cual se permite su exhibición, distribución, copia y posibilita hacer obras derivadas a partir de distribución, copia y posibilita hacer obras derivadas a partir de la misma, siempre y cuando se cite la autoría del la misma, siempre y cuando se cite la autoría del Prof. Matías E. Prof. Matías E. García García y sólo podrá distribuir la obra derivada resultante bajo y sólo podrá distribuir la obra derivada resultante bajo una licencia idéntica a ésta. una licencia idéntica a ésta.  . .