3. ORIENTACIONES
• En esta sesión aprenderá los conceptos
de las tecnologías Web
• Diferencia entre el Lenguaje Html y el
lenguaje ASP.Net
• Estructura de aplicaciones Web con
ASP.Net
4. Temario
• Hypertext Transfer Protocol (HTTP)
• HTML Forms
• Procesamiento en el Servidor
• ASP vs ASP.NET
• Aplicaciones ASP.NET
• ASP.NET WebForms
• Controles de Servidor y de Usuario
• Administración de Estado
• Seguridad en ASP.NET
• Optimización y Distribución en ASP.NET
5. Hypertext Transfer Protocol (HTTP)
• Uno de los protocolos más importantes del Web
• HTTP define como los navegadores y los servidores
Web se comunican uno con otro
• Esta basado en texto y es transmitido sobre
conexiones TCP
6. Como funciona HTTP
Cliente
http://www.cursoaspnet.c
om/inicio.html
Servidor
Internet DNS
IP=66.45.26.25 Puerto: 80
HTTP Request
www.cursoaspnet.com
IP = 66.45.26.25
inicio.html
<html>
HTTP Response
<body>
Bienvenidos al
Curso ASP.NET
</body>
</html>
7. HTML Forms
• En el corazón de toda aplicación Web genuina están
los HTML Forms
• Un HTML Form es la porción de un documento HTML
que aparece entre las etiquetas <form></form>
Suma.html
<html>
<body>
<form>
<input type="text" name="op1" />
+
<input type="text" name="op2" />
<input type="submit" value=" = " />
</form>
</body>
</html>
8. HTML Forms (Cont.)
• Un botón submit (<input type=“submit”>) juega un rol
especial en un HTML Form:
– Cuando es pulsado, el navegador envía el HTML Form junto
con cualquier entrada de datos del usuario al servidor Web
• Cómo el HTML Form es enviado, dependerá del
atributo Method del form:
– Si el atributo Method del form no está presente o tiene el
valor GET, el navegador enviará al servidor un comando
HTTP GET
– Si el atributo Method del form tiene el valor POST, el
navegador enviará al servidor un comando HTTP POST
• Ejemplo >>
9. HTML Forms (Cont.)
Method = GET Method = POST
<form method=“get"> <form method=“post">
... ...
</form> </form>
GET /suma.html?op1=2&op2=2 HTTP/1.1 POST /suma.html HTTP/1.1
. .
. .
. Content-Type: ...
Connection: Keep-Alive Content-Length: 11
[blank line] [blank line]
op1=2&op2=2
El navegador envia los datos El navegador envia los datos
ingresados como una ingresados en el cuerpo
cadena de consulta de la solicitud HTTP
Cualquiera sea el método utilizado, es decir GET o POST, cuando un form es
enviado al servidor, decimos que se produjo un POSTBACK
10. Procesamiento en el Servidor
• Construir la parte del cliente es “fácil”, sólo es HTML
• La parte difícil es la construcción de la lógica del lado
del servidor. “Algo en el servidor”, tiene que
interpretar las entradas del usuario enviadas junto
con el form y generar la correspondiente salida.
Suma.html
<html>
Después del procesamiento
<body> Suma.html
<form> <html>
<input type="text" name="op1" /> <body>
+ <form>
<input type="text" name="op2" /> <input type="text" name="op1“ value=“2”/>
<input type="submit" value=" = " /> +
</form> <input type="text" name="op2“ value=“2”>
</body> <input type="submit" value=" = " />
</html> 4
</form>
Antes del procesamiento </body>
</html>
11. Procesamiento en el Servidor (Cont.)
• Existen varias tecnologías de procesamiento:
– CGI (Common Gateway Interface)
• Define una API de bajo nivel
• Se programa en Perl
• Popular en entornos UNIX, no tanto en Windows
– ISAPI (Internet Server Application Programming Interface)
• Son DLL Windows que “corren” bajo IIS. Escritas en C++
• Una solicitud típica sería ,
http://www.cursoaspnet.com/suma.dll
• Mejor performance que CGI
– ASP (Active Server Pages)
• Simple solución: HTML + Script del lado del servidor
• Programadas en JScript o VBScript
• Objetos intrínsecos que abstraen detalles de bajo nivel de
HTTP. Objetos Request y Response
• Permite usar ADO (ActiveX Data Object) para acceso a datos
12. Que pasa con ASP?
• ASP es lenta: el código script es interpretado más
que compilado
– Por cada solicitud a la página el script es interpretado
• ASP carece de un verdadero modelo de
encapsulación
– Por ej. NO es posible crear controles ASP reutilizables
que encapsulen complejos “rendering” o alguna
lógica de comportamiento, sin recurrir a COM
• El código puede tornarse imposible de leer
• Mezcla de código y la presentación
• Distribuir una aplicación ASP que utilice COM puede
ser un dolor de cabeza
13. Que es ASP.NET
• ASP.NET es el framework de programación web
dentro de .NET
• Permite desarrollar aplicaciones Web con un
modelo “similar” al utilizado para aplicaciones
Windows
• El componente fundamental de ASP.NET es el
WebForm
• Independencia del cliente (navegador, S.O.,
dispositivo físico, etc.)
• Permite utilizar cualquier lenguaje .NET
• Permite desarrollar Servicios Web XML
14. ASP.NET - Ventajas
• La “parte ejecutable” de una aplicación ASP.NET es
COMPILADA
• Implementación y actualización de las aplicaciones
sin reiniciar el servidor!
• Acceso a toda la BCL del .NET Framework
• Independiente del lenguaje de programación
• Administración automática del estado de los
controles Web (VIEWSTATE)
• Encapsulamiento a través de controles de servidor y
controles de usuario!
15. ASP.NET – Ventajas (Cont.)
• Permite usar ADO.NET para acceso a datos
• Soporta XML, Hojas de estilo CSS, etc.
• Detección automática del navegador cliente,
generando el lenguaje de marcas soportado
por el mismo
• Mecanismo de Caching incorporado para
páginas completa o partes de la misma,
frecuentemente solicitadas
16. Modelo de ejecución de ASP.NET
Primera Solicitud Parser
Compilador
<% ... %>
<% ... %>
Inicio.aspx
http://localhost/inicio. aspx
Assembly
Memoria Cache
Assembly en
Assembly en
MSIL
MSIL
Cliente
HTTP Runtime
Servidor
17. Modelo de ejecución de ASP.NET
(Cont.)
Siguientes Parser
Solicitudes Compilador
<% ... %>
<% ... %>
Inicio.aspx
http://localhost/inicio. aspx
Assembly
Memoria Cache
Assembly en
Assembly en
MSIL
MSIL
Cliente
HTTP Runtime
Servidor
18. Componentes de una aplicación
ASP.NET
• WebForms (Formularios Web) o Páginas ASPX
– Uno o más archivos con extensión .aspx
• Archivos Code-Behind
– Archivos asociados a WebForms que contienen
código del lado del servidor (Ej. VB.NET, C#, etc.)
• Archivos de configuración con formato XML
– Un archivo Web.config por c/aplicación
– Un único archivo Machine.config por servidor
• Global.asax
– Eventos a nivel de aplicación
19. Componentes de una aplicación
ASP.NET
• Directorio BIN
– Contiene el assembly de la aplicación (Ej.:
MiAplic.dll)
– Cero o más assemblies (Componentes externos)
• Enlaces a Servicios Web XML
– Permiten a la aplicación ASP.NET enviar y recibir
datos desde Servicios Web
• Mecanismo de Caching
– Permite responder al cliente de manera más rápida
después de la primera solicitud
20. Componentes de una aplicación
ASP.NET
Cliente ASP.NET Web Server
WebForm1.aspx Global.asax
Output Cache
WebForm1.aspx.vb
Web.config
Internet WebForm2.aspx
BIN
WebForm2.aspx.vb
Comp.
Comp.
Servicios Web
Database
21. Las aplicaciones Web ASP.NET + IIS
• IIS es el servidor Web de la plataforma Windows
• Las aplicaciones Web solo pueden existir en una
ubicación que es publicada por IIS como un
Directorio Virtual
• Directorio Virtual: es un recurso compartido
identificado por un alias y que representa una
ubicación física en el servidor
• El famoso //localhost hace referencia al directorio raíz
del servidor web
• Por default, //localhost “apunta” a
C:Inetpubwwwroot
22. Las aplicaciones Web ASP.NET + IIS
• VS.NET por default crea las aplicaciones web
bajo el directorio raíz, ej.:
– MiAplicacion
• Virtual: http://localhost/MiAplicacion
• Física:
C:InetpubwwwrootMiAplicacion
• Podemos usar IIS para definir un directorio
virtual donde alojar nuestras aplicaciones
Web, diferente al predeterminado
23. Estructura de las aplicaciones Web
• El “perímetro” de una aplicación Web es
determinada por su estructura de directorios
• Comienza por su directorio raíz, el cual
contiene:
– La página o WebForm de inicio
– El archivo de configuración Web.config
– El directorio BIN
• El perímetro de la aplicación termina en su
último directorio o cuando se encuentra el
directorio raíz de otra aplicación Web
24. La página de inicio de la aplicación
• Etapa de desarrollo
– Cuando VS.NET crea una aplicación Web ASP.NET,
este hace que la página WebForm1.aspx se la página de
inicio
– La página de inicio es el primer WebForm que se
muestra cuando se ejecuta una aplicación desde
VS.NET
– Podemos establecer la página de inicio a nuestro gusto
• Etapa de distribución/implementación
– Bajo IIS deberemos configurar la página a mostrar
cuando el usuario omita en la URL el nombre de alguna
página, por ej. cuando escriba http://localhost/MiApp en
vez de http://localhost/MiApp/inicio.aspx
25. ASP.NET + IIS
• Cuando IIS recibe una solicitud sobre una página
ASPX, IIS utiliza aspnet_isapi.dll para invocar al
ASP.NET Worker Process (aspnet_wp.exe)
• El ASP.NET Worker Process ejecuta el assembly de la
aplicación y destina un espacio de memoria
(Application Domain)
• ASP.NET aísla cada aplicación mediante los
Application Domains
• Por lo tanto “El nivel de aislamiento configurado en
IIS, NO TIENE EFECTO sobre las aplicaciones
ASP.NET” (Usado con ASP)
26. ASP.NET con VS.NET
• Archivos de soluciones
– Las soluciones contienen uno o más proyectos
– Existen dos archivos de soluciones:
• El archivo con extensión .sln mantiene enlaces a los proyectos
que la contienen y otra información general.
• El archivo con extensión .suo mantiene información sobre las
opciones personalizadas de la solución hecha por el usuario.
• Archivos de proyecto
– Contienen enlaces a todos los items (Clases,
WebForms, archivos de configuración, etc.) que
conforman al proyecto.
– Sus extensiones son .vbproj (VB.NET) y .csproj
(C#)
27. ASP.NET con VS.NET
• Assembly del proyecto
– Cuando compilamos la aplicación, TODAS las clases code-
behind (.aspx.vb o .aspx.cs) son compiladas en un assembly
con el nombre MiProyecto.dll dentro del directorio BIN de la
aplicación
– También existen los archivos de clase AssemblyInfo.vb y
AssemblyInfo.cs que contienen información general del
assembly de la aplicación como ser Versión, Nombre de la
empresa, etc
28. Estructura de archivos de una aplicación
Web ASP.NET
My Documents
My Documents Inetpub
Inetpub
Visual Studio
Visual Studio wwwroot
wwwroot
Projects
Projects
ProyectoA
ProyectoA ProyectoA
ProyectoA
ProyectoA.sln ProyectoA.vbproj
WebForm1.aspx
Desarrollo WebForm1.aspx.vb
(Archivos Code-behind)
Assemblies Bin
Bin
Generar
aplicación ProyectoA.dll
29. CONCLUSIONES Y/O ACTIVIDADES DE
INVESTIGACIÓN SUGERIDAS
• Podemos concluir que de paginas
estáticas y no seguras en el cliente
realizadas con HTML se paso a paginas
dinámicas, mas seguras y potentes en el
servidor usando la tecnología Web de
Microsoft ASP.Net
• Se sugiere ingresar al sitio Web de
Microsoft Asp.Net