Programación Web

81
Programación Web Unidad 5. Programación del lado del servidor.

description

Programación Web. Unidad 5. Programación del lado del servidor. Programación del lado del servidor. Aplicación Web. Una aplicación Web es una aplicación informática que los usuarios utilizan accediendo a un servidor Web a través de Internet o de una intranet. - PowerPoint PPT Presentation

Transcript of Programación Web

Page 1: Programación Web

Programación Web

Unidad 5. Programación del lado del servidor.

Page 2: Programación Web

Programación del lado del servidor

• Aplicación Web.

Una aplicación Web es una aplicación informática que los usuarios utilizan accediendo a un servidor Web a través de Internet o de una intranet.

Page 3: Programación Web

5.1 Procesamiento del lado del servidor.

• Son las tareas o funciones que se realizan en el servidor de Web, a diferencia de las tareas que se ejecutan en el navegador del cliente.

• El código se compila y ejecuta en el servidor.• Tienen acceso a recursos del servidor.• Las páginas aspx utilizan:

– <SCRIPT language="vb" runat="server">

– <SCRIPT language=“cs" runat="server">

Internet.Páginas .ASPX

Page 4: Programación Web

5.2 Conceptos básicos de la herramienta de desarrollo.

• Para programar del lado del servidor, se usará la tecnología ASP.NET, en particular el lenguaje Visual BASIC, con el IDE Visual Studio 2005.

• Tener en cuenta que el servidor Web es el IIS (Internet Information Server). Software que debe instalarse.

• La plataforma de sistema operativo será Microsoft Windows.

Page 5: Programación Web

Aplicación Web ASP.NET

Datos XML

Base de datos

InternetInternet

Page1.aspx

Page2.aspx

ServiciosWeb

ServiciosWeb ComponentesComponentes

Web Forms

Páginas código trasero

global.asax

Web.config

machine.config

Servidor Web ASP.NET

Cach

é de

Sal

ida

Clientes

Page 6: Programación Web

ASP.NET

• Ejecución de una página ASP.NET

Page 7: Programación Web

ASP.NET

• Introducción a ASP.NET.– El sucesor y evolución de Active Server Pages, más

flexible.– Páginas Web dinámicas que pueden acceder a

recursos del servidor.– Procesamiento de formularios Web Forms en el lado

servidor .– Los Servicios Web XML permiten crear aplicaciones

Web distribuidas– Independiente del navegador.– Independiente del lenguaje.

Page 8: Programación Web

Visual Studio .NET: la herramienta para el desarrollo .NET

Visual Studio .NET

Herramientas Windows Forms

Herramientas Web Forms

Proceso de errores

Acceso a datos

Múltiples Lenguajes

Herramientas Servicios Web

Desarrollar Depurar ImplantarDiseñar

Page 9: Programación Web

.NET Framework

• Es un conjunto de objetos y diseños de Microsoft para crear aplicaciones.

• Proporciona la funcionalidad subyacente para ASP.NET (y en general para Visual Studio.NET).

Page 10: Programación Web

Componentes del .NET Framework

Win32Win32

MessageMessageQueuingQueuing

COM+COM+((Transacciones, Particiones, Transacciones, Particiones,

Agrupación de objetosAgrupación de objetos))IISIIS WMIWMI

Common Language RuntimeCommon Language Runtime

Biblioteca de clases de .NET FrameworkBiblioteca de clases de .NET Framework

ADO.NET y XMLADO.NET y XML

Servicios Web XMLServicios Web XML Interfaz de usuarioInterfaz de usuario

VisualBasic C++ C#

ASP.NETASP.NET

Perl Python …

Page 11: Programación Web

ASP.NET

• Creación de un proyecto Web.

Page 12: Programación Web

ASP.NET

• Archivos “comunes” de un proyecto Web.– .html– .aspx– .aspx.vb– .asmx– .xml– .css– Global.asax– Web.config

Page 13: Programación Web

Entorno integrado de desarrollo (IDE)Cuadro de herramientas

Lista de tareas

Exploradorde

soluciones

Ayuda dinámica

Editor/Navegador

PropiedadesExploradorde servidores

Examinador de objetos

Page 14: Programación Web

Objetos ASP.NET

• Cuando se ejecuta una aplicación Web, ASP.NET mantiene información sobre:– La aplicación actual.– Cada sesión de usuario.– La solicitud HTTP actual.– La página de formularios Web Forms

solicitada, – etc.

Page 15: Programación Web

Clases ASP.NET

• El marco de trabajo de páginas ASP.NET contiene una serie de clases (y objetos instanciados) para encapsular esta información de contexto.

• Ejemplo: Request.Form(“nombre”)

Se obtiene o lee mediante el objeto “Request” el contenido de un campo “nombre” contenido en un formulario.

Page 16: Programación Web

Objetos ASP.NET

• ASP.NET hace que instancias de estas clases estén disponibles como objetos intrínsecos a los que se puede tener acceso desde el código. La tabla siguiente enumera estos objetos intrínsecos y las clases de las que son instancias.

Page 17: Programación Web

Objetos ASP.NET

• Nota   Aunque las clases que definen estos objetos son nuevas en ASP.NET, los objetos se utilizan del mismo modo que en versiones anteriores de ASP.

Page 18: Programación Web

Objetos ASP.NET

Page 19: Programación Web

Objetos ASP.NET

Page 20: Programación Web

Visual BASIC.NET

Page 21: Programación Web

Visual BASIC.NET

• Visual Basic .NET ofrece numerosas características nuevas y mejoradas, como herencia, interfaces y sobrecarga, que lo convierten en un eficaz lenguaje de programación orientado a objetos.

Page 22: Programación Web

Visual BASIC.NET

• Con Visual Basic, se puede crear aplicaciones multiproceso y escalables utilizando subprocesamiento múltiple explícito.

• También incluye el control estructurado de excepciones, atributos personalizados y compatibilidad con CLS (Common Language Specification, Especificación de lenguajes comunes).

Page 23: Programación Web

VB.NET y el .Net Framework• VB requiere de la biblioteca de clases

de .NET Framework.

Page 24: Programación Web

Tipos de datos de VB

Page 25: Programación Web

5.3 Operadores de Visual BASIC.

Operadores aritméticos.

• Los operadores aritméticos son suma o adición (+), resta o sustracción (-), multiplicación (*), división (/), división de entero (\), módulo (Mod), negativo (-) y exponencial (^).

Page 26: Programación Web

Operadores de comparación

• Los operadores de comparación son igual a (=), no igual a (<>), menor que (<), menor o igual que (<=), mayor que (>) y mayor o igual que (>=).

• Los operadores de comparación como grupo tienen menor precedencia que los operadores aritméticos. Por ejemplo, expresiones como 2 + 3 < 2 * 9 son iguales que (2 + 3) < (2*9).

Page 27: Programación Web

Operadores booleanos

• Los operadores booleanos son, en orden de precedencia de mayor a menor: Not, And, Or y Xor.

Page 28: Programación Web

Operadores booleanos

• Basic .NET también introduce dos nuevos operadores, AndAlso y OrElse, que pueden reducir el tiempo de ejecución mediante evaluaciones lógicas cortocircuitadas. Si el primer operando de un operador AndAlso se evalúa como False, el segundo operando no se evalúa. De forma similar, si el primer operando de un operador OrElse se evalúa como True, el segundo operando no se evalúa.

Page 29: Programación Web

Operadores booleanos

• Los operadores booleanos como grupo tienen una precedencia menor que los operadores de comparación. De esta forma, por ejemplo, la expresión:

• 2 < 3 And 4 >= -1

• es lo mismo que:

• (2 < 3) And (4 >= -1).

Page 30: Programación Web

Expresiones aritméticas

• Una expresión numérica es una expresión que contiene literales y variables que representan valores numéricos, y operadores que actúan sobre esos valores. A continuación se muestra un ejemplo de una expresión numérica:

• 4 * (67 + x)

Page 31: Programación Web

Expresiones booleanas

• Una expresión Boolean es una expresión que da como resultado un valor Boolean. Las expresiones Boolean pueden tener varias formas. La más simple es la comparación directa del valor de una variable Boolean con un literal Boolean, como se muestra en el siguiente ejemplo:

• If x = True Then ' Compares x to the Boolean value True.

• ' Insert code to execute if x = True.• Else• ' Insert code to execute if x = False.• End If

Page 32: Programación Web

Expresiones de comparación

• Los operadores de comparación pueden utilizarse para construir expresiones que comparan los valores de variables numéricas. Estas expresiones devuelven un valor Boolean que depende de si la comparación es verdadera o falsa. Los siguientes son ejemplos de este tipo de expresión:

• 45 > 26• 26 > 45

• De esta forma, puede comparar cualquier par de expresiones numéricas. Las expresiones comparadas pueden ser complejas, como en el siguiente ejemplo:

• x / 45 * (y +17) >= System.Math.Sqrt(z) / (p - (x * 16))

Page 33: Programación Web

5.4 Sentencias

• Secuenciales (asignación, expresiones).

• Condicionales (If, Select).

• Ciclos (For, While).

Page 34: Programación Web

Sentencia If (formato)

• If condition [ Then ]

• [ statements ]

• [ ElseIf elseifcondition [ Then ]

• [ elseifstatements ] ]

• [ Else [ elsestatements ] ]

• End If

Page 35: Programación Web

Sentencias condicionales

• Ejemplo “simple” de If

• If Digits = 1 Then

• MyString = "One"

• Else

• MyString = "More than one“

• End If

Page 36: Programación Web

Sentencias condicionales

• Ejemplo “grande” de If

• Dim Number, Digits As Integer• Dim MyString As String• Number = 53 ' Initialize variable.• If Number < 10 Then• Digits = 1• ElseIf Number < 100 Then• ' Condition evaluates to True so the next statement is executed.

• Digits = 2• Else• Digits = 3• End If

Page 37: Programación Web

Sentencia Select (formato)

• Select Case testexpression    

• [Case expressionlist-n       

• [statements-n]]

• . . .    

• [Case Else       

• [elsestatements-n]]

• End Select

Page 38: Programación Web

Sentencia Select (ejemplo)

• Dim Color, MyVar• Sub ChangeBackground (Color)• MyVar = lcase (Color)• Select Case MyVar• Case "red" document.bgColor = "red"• Case "green" document.bgColor = "green"• Case "blue" document.bgColor = "blue"• Case Else MsgBox "pick another color"• End Select• End Sub

Page 39: Programación Web

Sentencia Select

• Select Number ' Evaluate Number.

• Case 1 To 5 ' Number between 1 and 5, inclusive.

• Debug.WriteLine("Between 1 and 5")• ' The following is the only Case clause that evaluates to True.

• Case 6, 7, 8 ' Number between 6 and 8.• Debug.WriteLine("Between 6 and 8")• Case 9 To 10 ' Number is 9 or 10.• Debug.WriteLine("Greater than 8")• Case Else ' Other values.• Debug.WriteLine("Not between 1 and 10")• End Select

Page 40: Programación Web

Sentencia For (formato)

• For counter [ As datatype ] = start To end [ Step step ] • [ statements ] • [ Exit For ] • [ statements ] • Next [ counter ]

Page 41: Programación Web

Sentencia For (ejemplo)

• For I As Integer = 1 To 10

• For J As Integer = 1 To 10

• For K As Integer = 1 To 10• ' Statements to operate with current values of I, J, and K.

• Next K

• Next J

• Next I

Page 42: Programación Web

Sentencia For (ejemplo)

• Dim Words, Digit As Integer• Dim MyString As String• For Words = 10 To 1 Step -1 ' Set up 10 repetitions.

• For Digit = 0 To 9 ' Set up 10 repetitions.

• MyString = MyString & CStr(Digit) • ' Append number to string.• Next Digit ' Increment counter.• MyString = MyString & " " ' Append a space.• Next Words

Page 43: Programación Web

Sentencia While (formato)

• While condition

• [ statements ]

• End While

Page 44: Programación Web

Sentencia While (ejemplo)

• Dim Counter As Integer = 0• While Counter < 20 ' Test value of Counter.

• Counter += 1 ' Increment Counter.

• End While ' End While loop when Counter > 19.

• Debug.WriteLine (Counter) • ' Prints 20 in the Output window.

Page 45: Programación Web

5.5 Arreglos

• Dim array1(9) As Integer•

• Dim i As Integer• For i = 0 To array1.Length - 1• array1(i) = i• Console.Write( " " & array1(i) )• Next i

Page 46: Programación Web

Arreglos

• ' Creates and initializes a new integer array and a new Object array.

Dim myIntArray() As Integer = {1, 2, 3, 4, 5}

Dim myObjArray() As Object = {26, 27, 28, 29, 30}

Page 47: Programación Web

Arreglos

• En Visual Basic, se pueden declarar matrices de hasta 32 dimensiones. Por ejemplo, la siguiente instrucción declara una matriz bidimensional con 5 filas y 10 columnas.

• Dim Rectangle(4, 9) As Single

Page 48: Programación Web

5.6 Subprogramas, funciones y librerías.

• VB usa distintos tipos de subprogramas, los más generales son:– Sub (procedimientos).– Function (funciones).

• Las librerías que se usan son las del .NET Framework y se importan con la sentencia:– Imports “Librería”

– Ejemplo:

– Imports System.XML

Page 49: Programación Web

Procedimientos

Sub MySub(ByVal Q As String, ByRef i As Integer)

' ...

Return

' ...

End Sub

Page 50: Programación Web

Procedimientos• ' Sub procedure definition.• ' Sub procedure with two arguments.Sub SubComputeArea(ByVal Length As Double, ByVal Width As Double)

Dim Area As Double ' Declare local variable. If Length = 0 Or Width = 0 Then

' If either argument = 0.Exit Sub ' Exit Sub immediately.

End IfArea = Length * Width ' Calculate area of rectangle.Debug.WriteLine(Area) ' Print Area to Immediate window.

End Sub

Page 51: Programación Web

Funciones

• Public Function GetTheNumber() As Integer

• Return 42

• End Sub

Page 52: Programación Web

FuncionesPublic Function CalcSum(ByVal ParamArray Args() As Double) As Double Dim I As Integer

CalcSum = 0If Args.Length <= 0 Then Exit Function ' No arguments passed.For I = 0 To UBound(Args, 1)

CalcSum += Args(I)Next I

End Function ' Returns latest value of CalcSum.

• La función se puede invocar como sigue:• Dim ReturnedValue As Double• ReturnedValue = CalcSum(4, 3, 2, 1)

• ' The function's local variables are assigned the following values:• ' Args(0) = 4, Args(1) = 3, and so on.

Page 53: Programación Web

Biblioteca de clases de .NET Framework

• La biblioteca de clases de .NET Framework está constituida por espacios de nombres. Cada espacio de nombres contiene tipos que se pueden utilizar en el programa: clases, estructuras, enumeraciones, delegados e interfaces.

Page 54: Programación Web

Librerías

• Para usar una librería o clase en un proyecto, esta se importa mediante la sentencia “Imports”, ejemplo:

• Imports System.Xml

• Se importa el espacio de nombres “Xml” ubicado dentro del espacio de nombres “System”. El espacio de nombres “Xml” proporciona un conjunto de clases (o librerías para manipular archivos XML.

Page 55: Programación Web

Librerías

Page 56: Programación Web

Librerías

• Se muestran algunas clases, propiedades y espacios de nombres del espacio de nombres XML.

Page 57: Programación Web

Biblioteca de clases de .NET Framework

• Como en cualquier biblioteca de clases orientada a objetos, los tipos de .NET Framework permiten realizar diversas tareas de programación comunes, como son la administración de cadenas, recopilación de datos, conectividad de bases de datos y acceso a archivos.

Page 58: Programación Web

Biblioteca de clases de .NET Framework

• Además de estas tareas habituales, la biblioteca de clases incluye tipos adecuados para diversos escenarios de desarrollo especializados. Por ejemplo, puede utilizar .NET Framework para desarrollar los siguientes tipos de aplicaciones y servicios: – Aplicaciones de consola – Aplicaciones GUI de Windows (Windows Forms) – Aplicaciones de ASP.NET – Servicios Web XML – Servicios de Windows

Page 59: Programación Web

Espacios de nombres para el Web en Visual Studio

Entre los espacios de nombres de .NET Framework relativos a aplicaciones Web ASP.NET y servicios Web XML se incluyen los siguientes:

• System.Web: contiene clases e interfaces que permiten la comunicación entre explorador y servidor. Las clases de este espacio de nombres administran los resultados HTTP dirigidos al cliente (HttpResponse) y leen las solicitudes HTTP (HttpRequest). Otras clases proporcionan utilidades para herramientas y procesos de servidor, manipulación de cookies, transferencia de archivos, información sobre excepciones y control de caché de resultados.

• System.Web.UI: contiene clases para crear páginas de formularios Web Forms, incluida la clase Page y otras clases estándar que se utilizan para crear interfaces de usuario Web.

• System.Web.UI.HtmlControls: contiene clases para controles HTML que se pueden agregar a formularios Web Forms para crear interfaces de usuario Web.

Page 60: Programación Web

Espacios de nombres para el Web en Visual Studio

• System.Web.UI.WebControls: contiene clases para crear controles de servidor Web ASP.NET. Cuando se agregan a un formulario Web Forms, estos controles proporcionan código HTML específico del explorador y secuencias de comandos que permiten crear interfaces Web de usuario independientes del dispositivo.

• System.Web.Services: contiene las clases que permiten generar y utilizar servicios Web XML, que son entidades programables residentes en un servidor Web que se exponen por medio de protocolos estándar de Internet.

• System.Xml: Proporciona compatibilidad basada en estándares para procesar XML.

Page 61: Programación Web

5.7 Ejemplos prácticos

• Realizar y analizar algunos ejemplos en Visual Studio.NET, que se trabajarán en el Laboratorio de Cómputo.

Page 62: Programación Web

5.8 Procesado de formularios

• Un formulario permite al cliente Web enviar información al servidor.

• Normalmente un formulario esta en una página HTML.

• Los datos a enviar se deben encerrar entre la etiqueta <form></form>

• Normalmente una página “.aspx” recibirá el formulario y lo procesará (común almacenarlo en una BD).

Page 63: Programación Web

Ejemplo de una página HTML con formulario.

Page 64: Programación Web

Vista de “código” de la página anterior.

Page 65: Programación Web

Procesamiento del formulario en la página .aspx

Page 66: Programación Web

5.9 Sesiones

• Una sesión se establece cuando el usuario abre una página de la aplicación Web y se termina cuado se cierra la última página, o bien se puede terminar después de cierto tiempo de inactividad.

• ASP.NET permite guardar datos de la sesión de cada usuario en la aplicación.

• Para esto se usa el objeto Session.

• Además el archivo Global.asax tiene definidos eventos para detectar cuando un usuario: inicia sesión, termina sesión, etc.

Page 67: Programación Web

Sesiones

• Por ejemplo, dentro del texto HTML el siguiente código:

• Crea una variable de sesión llamada “Nombre” y le asigna un valor obtenido de un formulario.

• ¿En que páginas de la aplicación Web se podrá usar la variable una vez creada y asignado su valor?

Page 68: Programación Web

Sesiones

• Analizar el código del lado del servidor en una página .aspx:

Page 69: Programación Web

Sesiones

• Ahora una vez creada la variable de sesión y asignado un valor. Esta variable se puede usar en cualquier página a la que ingrese ese usuario.

Page 70: Programación Web

Sesiones

• Analizar el ejemplo:

Page 71: Programación Web

Sesiones

• El archivo “Global.asax” es opcional en un proyecto Web. Nos permite definir código asociado a eventos de:– Inicio de la aplicación.– Fin de la aplicación.– Inicio de sesión.– Fin de sesión.

Page 72: Programación Web

Sesiones• Agregar un archivo Global.asax a un

proyecto Web:

Page 73: Programación Web

Archivo Gobal.asax (vista inicial)

Page 74: Programación Web

Archivo Global.asax (con código)

Page 75: Programación Web

5.10 Conectividad entre el servidor Web y el servidor de la BD.

• Tema tratado en el laboratorio.• En un proyecto Web se pueden crear “n”

conexiones a bases de datos.• Por ejemplo, para conectarse a Oracle,

mediante ODBC realizamos:– Creación de una conexión ODBC en el Panel de

Control.– Proporcionar información para la conexión

(usuario/contraseña/servidor).– Crear la conexión en Visual Studio y usarla.

Page 76: Programación Web

Conectividad entre el servidor Web y el servidor de la BD.

• Para conectarnos a una base de datos de Access.

• Se recomienda agregar la BD (un solo archivo .mdb) a la carpeta App_Data. Esta carpeta ya tiene los permisos para que usuarios que se conectan vía Web puedan consultar y modificar la BD.

• La conexión se generó directamente desde el Visual Studio.

• Access es adecuado para aplicaciones “pequeñas” y para pruebas. No maneja concurrencia.

Page 77: Programación Web

5.11 Manejo de archivos.

• Se usan las clases de .NET Framework para manejo de archivos.

• Una aplicación práctica es la creación y uso de archivos XML.

• Un archivo XML es de texto y es un estándar para compartir datos entre aplicaciones.

Page 78: Programación Web

Manejo de archivos.• Para agregar al proyecto un archivo XML:

Page 79: Programación Web

Manejo de archivos

• Editando en vista diseño un archivo XML.

Page 80: Programación Web

Manejo de archivos• Vista del archivo XML en el explorador Web

Page 81: Programación Web

5.12 Seguridad.

• Muchas aplicaciones de Web requieren de restringir el acceso a aplicaciones o páginas, para que solo ciertos usuarios la puedan acceder.

• Ejemplo, para proteger una página, para que solo un usuario autorizado la pueda abrir.