semana 1 tecnologias web

30
Profesor: Víctor Quevedo Dioses CICLO 2012-III Módulo:I Unidad: 1 Semana: 1 DESARROLLO RÁPIDO DE APLICACIONES PARA INTERNET

Upload: infovic

Post on 23-Jul-2015

209 views

Category:

Documents


2 download

TRANSCRIPT

Profesor: Víctor Quevedo Dioses

CICLO 2012-III Módulo:IUnidad: 1 Semana: 1

DESARROLLO RÁPIDO DE APLICACIONES PARA INTERNET

TÍTULO DEL TEMA

Tecnologías Web

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

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

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

Como funciona HTTP

www.cursoaspnet.com

IP = 66.45.26.25

http://www.cursoaspnet.com/inicio.html

IP=66.45.26.25 Puerto: 80

inicio.html<html><body>Bienvenidos al Curso ASP.NET</body></html>

Internet DNS

Servidor

Cliente

HTTP Request

HTTP Response

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>

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 >>

HTML Forms (Cont.)

Method = GET<form method=“get"> . . .</form>

GET /suma.html?op1=2&op2=2 HTTP/1.1 . . .Connection: Keep-Alive[blank line]

El navegador envia los datos ingresados como una cadena de consulta

Method = POST<form method=“post"> . . .</form>

POST /suma.html HTTP/1.1 . .Content-Type: ...Content-Length: 11[blank line]op1=2&op2=2

El navegador envia los datos ingresados en el cuerpode 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

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> <body> <form> <input type="text" name="op1" /> + <input type="text" name="op2" /> <input type="submit" value=" = " /> </form> </body></html>

Suma.html<html> <body> <form> <input type="text" name="op1“ value=“2”/> + <input type="text" name="op2“ value=“2”> <input type="submit" value=" = " /> 4 </form> </body></html>Antes del

procesamientoAntes del

procesamiento

Después del procesamiento

Después del procesamiento

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

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

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

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!

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

Modelo de ejecución de ASP.NET

http://localhost/inicio. aspx

Servidor

Cliente

Parser

Inicio.aspx

<% ... %>

<% ... %>

Compilador

Assembly CacheAssembly en

MSIL

Memoria

HTTP Runtime

Assembly en MSIL

Primera Solicitud

Modelo de ejecución de ASP.NET (Cont.)

http://localhost/inicio. aspx

Servidor

Cliente

Parser

Inicio.aspx

<% ... %>

<% ... %>

Compilador

Assembly CacheAssembly en

MSIL

Memoria

HTTP Runtime

Assembly en MSIL

Siguientes Solicitudes

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

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

Componentes de una aplicación ASP.NET

Servicios Web

Cliente

Internet

WebForm1.aspx.vb

WebForm1.aspx

WebForm2.aspx.vb

WebForm2.aspx

Global.asax

Web.config

Ou

tpu

t C

ach

e

Comp.Comp.Comp.Comp.

BIN

Database

ASP.NET Web Server

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:\Inetpub\wwwroot

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:\Inetpub\wwwroot\MiAplicacion

• Podemos usar IIS para definir un directorio virtual donde alojar nuestras aplicaciones Web, diferente al predeterminado

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

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

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)

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#)

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

Estructura de archivos de una aplicación Web ASP.NET

wwwrootwwwroot

BinBin

InetpubInetpub

ProyectoAProyectoA

My DocumentsMy Documents

Desarrollo

Assemblies

WebForm1.aspx

WebForm1.aspx.vb(Archivos Code-behind)

Visual StudioProjects

Visual StudioProjects

ProyectoAProyectoA

ProyectoA.sln ProyectoA.vbproj

ProyectoA.dllGenerar

aplicación

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

GRACIAS