Programación Web

Post on 21-Jan-2016

30 views 0 download

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

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

Internet.Páginas .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

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

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

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

.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

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 …

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 herramientas

Lista de tareas

Exploradorde

soluciones

Ayuda dinámica

Editor/Navegador

PropiedadesExploradorde servidores

Examinador de objetos

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

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.

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.