Sie sind auf Seite 1von 81

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

.Páginas
Internet
.ASPX
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.
Aplicación Web ASP.NET
Servidor Web ASP.NET
Clientes
Web
Forms

Caché de Salida
Page1. Web.
aspx Páginas config
código
Page2. trasero
Internet machine.
aspx config
global.
asax

Servicios Datos Base de Componentes


Web XML datos
ASP.NET
• Ejecución de una página ASP.NET
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.
Visual Studio .NET: la herramienta para el
desarrollo .NET
Herramientas Herramientas
Web Forms Windows Forms

Múltiples Visual Studio .NET Proceso


Lenguajes de errores

Herramientas Acceso
Servicios Web a datos

Diseñar Desarrollar Depurar Implantar


.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).
Componentes del .NET Framework

Visual
Basic C++ C# Perl Python …

Servicios Web XML Interfaz de usuario


ASP.NET

ADO.NET y XML

Biblioteca de clases de .NET Framework

Common Language Runtime

COM+
Message
(Transacciones, Particiones, IIS WMI
Queuing
Agrupación de objetos)

Win32
ASP.NET
• Creación de un proyecto Web.
ASP.NET
• Archivos “comunes” de un proyecto Web.
– .html
– .aspx
– .aspx.vb
– .asmx
– .xml
– .css
– Global.asax
– Web.config
Entorno integrado de desarrollo (IDE)
Cuadro de Editor/Navegador
herramientas Examinador de objetos

Explorador
de
soluciones

Explorador Propiedades
de servidores

Lista de tareas Ayuda dinámica


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.
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.
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.
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.
Objetos ASP.NET
Objetos ASP.NET
Visual BASIC.NET
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.
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).
VB.NET y el .Net Framework
• VB requiere de la biblioteca de clases de
.NET Framework.
Tipos de datos de VB
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 (^).
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).
Operadores booleanos
• Los operadores booleanos son, en orden
de precedencia de mayor a menor: Not,
And, Or y Xor.
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.
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).
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)
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
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))
5.4 Sentencias
• Secuenciales (asignación, expresiones).
• Condicionales (If, Select).
• Ciclos (For, While).
Sentencia If (formato)
• If condition [ Then ]
• [ statements ]
• [ ElseIf elseifcondition [ Then ]
• [ elseifstatements ] ]
• [ Else [ elsestatements ] ]
• End If
Sentencias condicionales
• Ejemplo “simple” de If

• If Digits = 1 Then
• MyString = "One"
• Else
• MyString = "More than one“
• End If
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
Sentencia Select (formato)
• Select Case testexpression
• [Case expressionlist-n
• [statements-n]]
• ...
• [Case Else
• [elsestatements-n]]
• End Select
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
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
Sentencia For (formato)
• For counter [ As datatype ] = start To end [ Step step ]
• [ statements ]
• [ Exit For ]
• [ statements ]
• Next [ counter ]
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
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
Sentencia While (formato)
• While condition
• [ statements ]
• End While
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.
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
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}
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
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
Procedimientos
Sub MySub(ByVal Q As String, ByRef i As Integer)
' ...
Return
' ...
End Sub
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 If
Area = Length * Width ' Calculate area of rectangle.
Debug.WriteLine(Area) ' Print Area to Immediate window.
End Sub
Funciones
• Public Function GetTheNumber() As Integer
• Return 42
• End Sub
Funciones
Public Function CalcSum(ByVal ParamArray Args() As Double) As Double
Dim I As Integer
CalcSum = 0
If 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.
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.
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.
Librerías
Librerías
• Se muestran algunas clases, propiedades
y espacios de nombres del espacio de
nombres XML.
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.
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
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.
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.
5.7 Ejemplos prácticos
• Realizar y analizar algunos ejemplos en
Visual Studio.NET, que se trabajarán en el
Laboratorio de Cómputo.
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).
Ejemplo de una página HTML con
formulario.
Vista de “código” de la página
anterior.
Procesamiento del formulario en la
página .aspx
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.
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?
Sesiones
• Analizar el código del lado del servidor en
una página .aspx:
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.
Sesiones
• Analizar el ejemplo:
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.
Sesiones
• Agregar un archivo Global.asax a un
proyecto Web:
Archivo Gobal.asax (vista inicial)
Archivo Global.asax (con código)
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.
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.
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.
Manejo de archivos.
• Para agregar al proyecto un archivo XML:
Manejo de archivos
• Editando en vista diseño un archivo XML.
Manejo de archivos
• Vista del archivo XML en el explorador 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.

Das könnte Ihnen auch gefallen