Aquellas aplicaciones cuya interfaz se construye a partir de pginas web.
R= Aplicaciones web
Son ficheros de texto en un formato estndar denominado HTML (HiperText Markup Languaje) que se almacenan en un servidor web al cual se accede utilizando protoloco HTTP (HyperText Transfer Protocol). R= Las pginas Web
Biblioteca portable para el desarrollo de interfaces graficas: R= SWING
Etapas del ciclo de vida del software que ms recursos consume (del 40 al 80 %): R= fase de mantenimiento
La capacidad de enlazar un texto con otro para crear un hipertexto es la caracterstica mas destacable de las pginas web. Sus orgenes se remontan al sistema Memex ideado por Vannevar Busch 1945.
Coleccin de documentos (nodos) con referencias cruzadas (enlaces), la cual podra explorarse con la ayuda de un programa interactivo (navegar) que nos permitiese movernos fcilmente de un documento a otro. R= Hipertexto (Ted Nelson en 1965)
Para que los usuarios pendadn acceder a nuestra pgina web, solo necesitaremos: R= Un servidor web que atienda las peticiones HTTP generadas por el navegador web del usuario (ejemplos: Internet Information Server de Microsoft o el Apache)
R= Y una IP fija para la mquina donde alojemos el servidor HTTP.
Cadena de texto fcil de recordar que el servicio de nombres DNS traduce a la direccin IP necesaria para establecer con xito una conexin con el servidor. R= Nombre de Dominio
Configuracin tpica de una aplicacin web que se limita a ofrecer la informacin almacenada en pginas HTML a las que el usuario final accede desde su navegador web utilizando el protocolo HTTP. R= HTML esttico
La creacin de aplicaciones web, en consecuencia, requieren la existencia de software ejecutndose en el servidor que genere automticamente los ficheros HTML que se visualizan en el navegador del usuario.
2
La diferencia entre las pginas dinmicas y las estticas consiste en que, ahora, el servidor HTTP delega en otros mdulos la generacin dinmica de las pginas HTML que se envan al cliente.
Protocolo simple en el que se establece una conexin TCP independiente para cada solicitud del cliente, sea que cada vez que el usuario accede a un fichero de nuestro servidor, lo hace de forma independiente. R= Protocolo HTTP
En ellas el contenido que se le muestra al usuario se genera dinmicamente para cada solicitud proveniente del navegador web instalado en la mquina cliente. R= Aplicaciones web
Las aplicaciones web slo se distinguen de las aplicaciones de escritorio tradicionales en que en vez de implementar la interfaz de usuario utilizando un lenguaje particular como c/c# o Java, se utilizan pginas web como punto de acceso a las aplicaciones.
Aplicaciones que construyen su interfaz utilizando formularios HTML, implementando su lgica en sistemas distribuidos y suelen almacenar sus datos en sistemas gestores de bases de datos relacionales.
R= Aplicaciones web multicapa
La lgica de la aplicacin se distribuye. El intercambio de mensajes en formato XML y el uso de protocolos estndares de Internet nos permiten mantener conectadas las distintas partes de una aplicacin, aunque sta haya de funcionar en un sistema distribuido heterogneo. R= Servicios web
Caracterstica comn que comparten todas las aplicaciones web: R= Centralizar el software para facilitar las tareas de mantenimiento y actualizacin de grandes sistemas.
Se basa en construir un modelo basado en objetos del documento HTML, de forma que podamos acceder fcilmente a los distintos elementos que lo componen. R= El HTML dinmico (DHTML)
La modificacin dinmica de las pginas HTML se realiza a travs de: R= pequeas macros o scripts que suelen incluirse en el mismo fichero de la pgina.
Facilita la creacin de pginas web dinmicas al ofrecer una forma de acceder a los distintos elementos que componen una pgina web: R= DHTML DOM (Document Object Model)
3
En el HTML dinmico, cada etiqueta HTML se convierte en un objeto con sus propiedades y eventos asociados.
Estos han de proporcionarle al navegador el cdigo correspondiente a la respuesta prevista por el programador para los distintos eventos que se pueden producir. R= Scripts
Estas se ejecutan cuando se produce algn evento asociado a alguno de los elementos de la pgina web de modo analgico a como se programa en cualquier entorno de programacin visual para construir interfaces de usuario. R= Las macros
Actualmente las macros se escriben utilizando JavaScript por cuestiones de portabilidad.
Estndar oficiao de JavaScrip ratificado por ECMA: R= ECMAScript
javaScript es un lenguaje interpretado originalmente llamado LiveScript que Netscape desarrollo para sus productos relacionados con la web.
En JavaScript y en Java, para declarar una variable no hay que especificar su tipo; basta con: R= asignarle un valor que podemos obtener de alguno de los elementos de nuestra pgina web.
Var dato = document.forms (0) .elements (0). Value;
JavaScript es idependiente de Java, el primero es un estndar abierto, ratificado por ECMA igual que el lenguaje C#, miestras que java es propiedad de Sun Microsystems.
Estos estn construidos sobre COM (Component Object Model), el modelo de Microsoft para desarrollo de componentes anterior a la plataforma .NET, y se compilan previamente, lo que permite su ejecicion ms eficiente: R= Los controles Active X
Al ser una tecnologa de Microsoft, la inclusin de controles Active X en pginas web slo funciona correctamente en el navegador web de Microsoft, el IE. Y suele utilizarse en aplicaciones web para intranets.
Los controles Active X fueron la primera respuesta de Microsoft a los applets de Java. La segunda fue la creacin de la plataforma .NET.
Son aplicaciones escritas en Java que se ejecutan en el navegador web. A diferencia de las macros interpretadas de JavaScripts, estas son aplicaciones completas compiladas para la mquina virtual 4
Java, se adjuntan a las pginas web y pueden ejecutarse en cualquier navegador que tenga instalada una mquina virtual Java: R= Los applets
La ejecucin de un applet es, en principio ms lenta que la de un control Active X
Cuando se utiliza un applet, se descarga del servidor web el cdigo intermedio del applet correspondiente a la mquina virtual Java; esto es: R= Sus Bytecodes
Cada aplicacin se ejecuta en un espacio independiente llamado: R= Sandbox
Son componentes que permiten alterar, mejorar o modificar la ejecucin de una aplicacin en la que se instalan, por ejemplo para visualizar PDF o ejecutar Flash. R= Plug-ins
Para incluir un fichero para el cual necesitemos un plug-in especifico, basta con incluir una etiqueta: R= EMBED en el HTML de la pgina web
Producto que permite construir aplicaciones web utilizando plug-ins, este mejora la capacidad de HTML a la hora de construir interfaces de usuario sin salirse del navegador web, se paga no por la licencia si no por la cantidad de datos que se transmiten comprimidos desde el servidor. R= Curl (lenguaje comercializado por un spin-off del MIT
Las aplicaciones web pueden almacenar estas pequeas cadenas de texto en el navegador web del cliente para realizar tareas como el mantenimiento de sesiones del usuario llamadas: R= Cookies
En el servidor
Las aplicaciones que se ejecutan en el servidor pueden recibir informacin del cliente de distintas formas y entre las ventajas ms destacables de las aplicaciones web desarrolladas de esta forma estn su accesibilidad (desde cualquier punto de Internet), su fcil mantenimiento (no hay que distribuir el cdigo de las aplicaciones ni sus actualizaciones), su relativa seguridad (el cdigo no puede manipularlo el usuario, al que slo le llega una representacin de los daros que le incumban) y su escalabilidad (utilizando arquitecturas multicapa y clusters de PCs resulta relativamente sencilla ampliar en nmero de clientes a los que puede dar servicio la aplicacin).
5
Aplicaciones web compiladas: CGI
Nombre que se le da a una aplicacin web que recibe sus parmetros utilizando un estndar donde se establece como han de comunicarse la aplicacin con el servidor web, y qye permite ejecutar programas externos a un servidor HTTP: R= Aplicaciones web compiladas CGI (Common Gateway Interface)
Hace referencia a un programa escrito en Java que se ejecuta en el servidor en vez de ejecutarse en el navegador del cliente como los applets, este extiende el comportamiento del servidor web de la misma forma que un CGI tradicional. R= Servlets
ASP (Active Server Pages) En vez de crear programas que incluyan en su interior el cdigo necesario para generar el documento HTML, creamos documentos HTML que incluyen el cdigo de la aplicacin en su interior.
Una pgina ASP/JSP contienen HTML esttico intercalando con scripts que se encargan de generar HTML de forma dinmica. R= Funcionamiento de las pginas de servidor
Las pginas ____ permiten crear aplicaciones web fcilmente incluyendo en los documentos HTML fragmentos de cdigo escrito en un lenguaje como VBScript, lo ms usual, o JScript, la versin de JavaScript de Microsoft. R= ASP
Permite generar documentos HTML o XML de forma dinmica combinando plantillas estticas con el contenido dinmico que se obtiene como resultado de ejecutar fragmentos de cdigo en Java, tambin permite separar mejor la interfaz de usuario. R= JSP
Una pgina ASP no es ms que un fichero HTML con extensin .asp (.aspx en el caso de ASP.NET) al que le aadimos algo de cdigo.
La parte esttica de la pgina se enva junto con el resultado de ejecutar el cdigo en el servidor, de ah el AS de ASP.
Funcin predefinida que nos devuelve la fecha y la hora que marque el reloj del sistema donde este instalado el servidor web. R= Now()
6
Funcin que encapsula los datos enviados desde el cliente y nos permite programar nuestra pgina sin tener que conocer detalles del protocolo HTTP : R= Request En Visual Basic .NET los _____ son obligatorios en las llamadas a los mtodos. R= ()
Es el nombre con el que se conoce la parte de la plataforma.NET que permite el desarrollo y ejecucin tanto de aplicaciones web como de servicios web. R= ASP.NET
Son las dos herramientas principales con las que se pueden construir interfaces de usuario en .NET R= Los formularios Windows y los formularios ASP.NET
Las plataformas .NET: Los formularios ASP.NET y los formularios Windows son las dos alternativas principales de las que dispone el programador para crear las interfaces de usuarios de sus aplicaciones.
Eventos en ASP.NET: La respuesta de la aplicacin web se obtiene como resultado de ejecutar los manejadores de eventos asociados a los controles incluidos en la interfaz de usuario.
Todos los controles que aparecen en la interfaz derivan de la clase: R= System. Web.IU.Control
ASP.NET se encarga de mostrar los formularios web de la forma que resulte ms adecuada para el navegador que utilice el usuario final de la aplicacin.
Estilos:
El primero consiste en incluir tanto los controles como el cdigo en un nico fichero .aspx.
El segundo mantiene los controles de nuestra interfaz en un fichero .aspx y dejar todo el cdigo en un lugar aparte (code-behind page)
En HTML existen:
Parrafos (delimitados por la etiqueta <P>
Encabezados, empleados para definir ttulos y subttulos (de mayor a menos nivel, con las etiquetas <H1> a <H6>
Enlaces para enganchar unas pginas con otras: <A HREF= url> texto
7
Las etiquetas <BODY> y </BODY> definen la parte principal o cuerpo del documento.
Negrita <B></B> Cursiva <I></I> Subrayado <U></U> Centrado <CENTER></CENTER> Tamao y color del tipo de letra <FONT SIZE = +1 COLOR = #rrggb></FONT> Salto de lnea <BR> Separador horizontal <HR>
HTML (De la 35 a la 45)
Formularios WEB
ASP.NET sustituye a las pginas interpretadas utilizadas en ASP por un sistema basado en componentes integrados en la plataforma .NET. De esta forma podemos crear aplicaciones web utilizando los componente que vienen incluidos en la biblioteca de clases de la plataforma .NET o, incluso, creando nuestros propios componentes.
Ejecucin de Paginas ASP.NET
Cuando el usuario intenta acceder a un fichero con extensin .asp, el Internet Information Server delega en la biblioteca asp.dll, que se encarga de interpretar la pgina ASP, cuando la pagina es ASP.NET las solicitudes recibidas son enviadas a la biblioteca aspnet_isapi.dll
Estos mdulos sirven para crear aplicaciones web sin que en el servidor se tenga que crear nuevos procesos cada vez que, como respuesta a una solicitud, se ha de crear dinmicamente una pagina web. R= Mdulo ASAPI
Biblioteca encargada de la ejecucin de las pginas ASP.NET R= aspnet_isapi.dll
A diferencia de las pginas ASP tradicionales, las paginas ASP.NET se: R= Compilan antes de ejecutarse. La primera vez que alguien accede a una pgina ASP.NET, sta se compila y se crea un fichero ejecutable que se almacena en una cach del servidor web, un assambly,de esta forma las siguientes ocasiones en las que se solicite la pagina, se podr usar directamente el ejecutable.
8
Creacin de pginas ASP.NET Una aplicacin web, generalmente, estar formada por varios formularios web. Cada uno de esos formularios lo implementaremos como una pgina ASP.NET. En la plataforma .NET, las pginas ASP.NET se construyen creando clases derivadas de la clase System.Web.IU.Page
Fichero que especificaremos el aspecto de nuestra interzas, utilizando tanto etiquetas HTML estndar como etiquetas especficas para hacer referencia a los controles ASP.NET que deseemos incluir en nuestra pgina. R= fichero con extensin .aspx
Fichero en el cual incluiremos el cdigo de la lgica de la aplicacin: R=Fichero con extensin .cs
Si el cdigo de la pgina ASP.NET cambia, el cdigo se recompilar automtica,ente, por lo que podemos editar libremente nuestra pgina en el servidor y al acceder a ella ejecutaremos siempre su versin actual.
Uso de controles en ASP.NET En ASP.NET se utilizan controles predefinidos en la biblioteca de clases .NET
Dentro de ASP.NET los controles se indican en el fichero: R= .aspx utilizando etiquetas de la forma <asp:/0>
Las etiquetas se encuentran dentro del cajn Web Forms del cuadro de herramientas
El identificador de un objeto es la propiedad ID
Todos los controles en una pgina ASP.NET deben estar dentro de una etiqueta <form> con el atributo runat=server. Adems, ASP.NET requiere que todos los elementos HTML estn correctamente anidados y cerrados (como sucede en XML)
Este evento nos permite especificar acciones que deseamos realizar antes de mostrarle la pgina al usuario: R= El evento Page_Load
El servidor web ser el encargado de interpretar las etiquetas correspondientes a los controles Asp.NET y visualizar correctamente en el navegador del usuario, para lo cual tendr que generar el cdigo HTML que resulte ms apropiado.
Estos controles representan etiquetas HTML tradicionales y funcionan de forma similar a los objetos utilizados en JavaScript para manipular dinmicamente el contenido de una pgina web. R= Los controles HTML 9
Estos controles estn asociados a las etiquetas especificas de ASP.NET y facilitan el desarrollo de interfaces web utilizando un entorno de programacin visual como Visual Studio .NET R= Los controles Web
Estos controles se emplean para validar las entradas introducidas por el usuario de una forma relativamente cmoda. R= Controles de validacin
Aparte de los controles dichos anteriormente el usuario puede crear sus propios controles para simplificar la creacin de interfaces consistentes y evitar la duplicacin innecesaria de cdigo en distintas partes de una aplicacin web.
Para que las etiquetas HTML sean programables en el servidor, solo tenemos que aadirle el atributo: R= runat = server
Si utilizamos Visual Studio .NET, para manipular un control HTML en el servidor slo tenemos que seleccionar la opcin: R= Ejecutar como control del servidor del men contextual asociado a la etiqueta HTML en el diseo del formulario web.
La biblioteca de clases de la plataforma .NET incluye una gama bastante completa de componentes que encapsulan las distintas etiquetas que pueden aparecer en un documento HTML. Dichos componentes se encuentran en el espacio de nombres: R= System. Web.UI.HtmlControls
Las etiquetas ms comunes en HTML tienen su control HTML equivalente en ASP.NET, por ejemplo los enlaces o las imgenes en HTML, los cuales se representan como objetos de tipo HtmlAnchor y HtmlImage en las pginas ASP.NET.
Si nos encontramos con que no existe un control HTML especifico para representar una etiqueta HTML determinada, esto no impide que podamos manipular desde nuestra aplicacin web, ya que existe un control genrico llamado: R= HtmlGenericControl.
Controles:
htmlAnchor enlace HtmlButton botn Htmlform formulario HtmlGenericControl Cualquier element HTML para el cual no existe un control HTML especifico 10
HtmlImage Imagen HtmlInput Distintos tipos de entradas en un formulario HTML: Botones (button, submit y reset), texto (text y password), opciones (checkbox y radio), imgenes (image), ficheros (file), y entradas ocultas(hidden) HtmlSelect Lista de opciones en un formulario HtmlTable Tablas, filas y celdas HtmlTextArea Texto en un formulario
Estos controles permiten desarrollar aplicaciones web compatibles con distintos navegadores y facilitan la tarea de programador al ofrecerle un modelo de programacin basado en eventos: R=Controles web
Variar en funcin del tipo de control que el programador decida incluir en su pgina ASP.NET: R= etiqueta control
Especifica el identificador que le asociamos a la variable mediante la cual accederemos al control desde el cdigo de nuestra aplicacin: R= identificador
Existen componentes que nos permiten manipular las etiquetas ASP.NET desde el cdigo de la aplicacin. Dichos componentes encapsulan a las distintas etiquetas ASP.NET y se encuentran en el espacio de nombres: R= System.Web.IU.WebControls y derivan de la clase WebControl
Tabla Pag. 61 (TABLA) ******************
Cuando el usuario rellena los datos de un formulario y alguno de los datos introducidos no verifica la restriccin impuesta por el control de validacin, el control de validacin se encarga de mostrarle un mensaje de error al usuario. Y se activa automticamente cuando se pulsa un botn, ya tenga la forma de un botn estndar (button), de una imagen (ImageButton) o de un enlace (LinkButton).
Pero se puede desactivar la validacin si establecemos a___ la propiedad de _______de dicho botn. R= false CausesValidation
Se puede forzar la validacin manualmente en el momento que nos interese mediante el mtodo ____ asociado a la pgina ASP.NET R= Validate
Podemos forzar a que una entrada determinada est dentro de un rango vlido de valores con un control de validacin del tipo: 11
R= RangeValidator
Todos los controles de validacin derivan de la clase: R= System.Web.UI.WebControls.BaseValidator
Controles:
Compara el valor de una entrada con el de otra o un valor fijo: R= CompareValidator
Permite implementar un mtodo cualquiera que maneje la validacin del valor introducido: R= CustomValidator
Comprueba que la entrada est entre dos valores dados: R= RangeValidator
Valida el valor de acuerdo a un patrn establecido como una expresin regular R= RegularExpressionValidator
Hace que un valor de entrada sea obligatorio: R= RequiereFieldValidator
Controles Creados por el Usuario:
A partir de una coleccin de controles ya existentes, el programador decide cmo han de visualizarse conjuntamente. En vez de tener que repetir la disposicin del conjunto de controles cada vez que hayan de utilizarse en la aplicacin, la coleccin de controles se encapsula en un nico control. Cada vez que se desee, se puede aadir el control a un formulario web para mostrar el conjunto completo de controles a los que encapsula. R= Por composicin
Los controles se implementan como clases, estas clases heredarn, directa o indirectamente, de la clase base de todos los controles web: la clase System.Web.UI.WebControl R= Por derivacin
Nos permiten seguir utilizando la clase de la misma forma y, al mismo tiempo, mantener la encapsulacin de los datos: R= Las propiedades
Para encapsular un conjunto de controles en un nico control, lo nico que tenemos que hacer es crear un control de usuario web, que nos permite definir el aspecto visual conjunto de una coleccin de controles a los que encapsula. 12
La forma mas sencilla de utilizar un control web creado por el usuario es, en el mismo entorno de desarrollo, arrastrar el control desde el Explorador de Soluciones hasta el lugar del formulario web en el que deseamos que aparezca nuestro control.
La tecla____ nos llevar del diseador de formularios web al cdigo asociado a la pgina. R= F7
Tcnicas habituales de programacin orientada a objetos: R= encapsulacin, herencia y polimorfismo
Al solicitar una pgina ASP.NET desde un cliente, en el servidor se dispara el evento _______ asociado a la pgina antes de generar ninguna salida: R= Page_Load
Si lo que deseamos es realizar alguna tarea solo la primera vez que un usuario concreto accede a la pgina, hemos de emplear la propiedad__________, que posee el valor false cuando el cliente visualiza por primera vez la pgina ASP.NET, mientras que toma el valor true cuando no es la primera vez que la pgina ha de ejecutarse para ser mostrada. R= Page.IsPostBack
Si queremos que la pgina se actualice en el mismo momento en que el usuario selecciona un elemento de la lista, hemos de establecer a true la propiedad AutoPostBack del control de tipo DropDownList que corresponde a la lista desplegable.
La propiedadAutoPostBack sirve para que, ante determinados eventos relacionados con acciones del usuario, el estado de los controles de la pgina se enve automticamente al servidor. Esto permite actualizar el contenido de la pgina conforme el usuario interacta con la aplicacin.
ASP.NET incluye un sencillo mecanismo por el cual se puede almacenar el estado de una pgina, basndose en la utilizacin de un array asociativo (ViewState) en el cual podemos almacenar cualquier objeto, siempre y cuando ste sea serializable
El estado de una pgina ASP.NET se define mediante un campo oculto incluido en el formulario HTML correspondiente a la pgina y se le aade en el servidor a cada pgina que tenga un formulario con el atributo runat =server R= _VIEWSTATE
A nivel de la pgina, podemos emplear la directiva <%@ Page EnableViewState = false %> en la cabecera del fichero .aspx. Esto deshabilita el mantenimiento del estado para todos los controles de la pgina ASP.NET
13
A nivel de un control particular, podemos establecer su propiedad EnableViewState a false. De esta forma, podemos controlar individualmente el comportamiento de las distintas partes de una pgina en lo que se refiere al mantenimiento de su estado.
Aplicaciones Web
El protocolo _______ es un protocolo simple de tipo solicitud-respuesta incluido dentro de la familia TCP/IP que se utiliza en Internet, lo que significa que cada vez que accedemos a una pgina (en general, a un recurso accesible a travs de HTTP), se establece una conexin diferente e independiente de las anteriores. R= HTTP (HiperText Transfer Protocol)
Salvo que se indique lo contrario en la propia URL, la conexin con el servidor se establecer a travs del puerto ______ TCP R= 80
El protocolo HTTP slo distingue dos tipos de mensajes, solicitudes y respuesta, que se diferencias nicamente en su primera lnea.
Sirve para que el cliente no tenga que descargar una pgina si sta no ha cambiado desde la ultima vez que accedi a ella en el servidor. R= If-Modified-Since
Con ella se averigua el sistema operativo y el navegador que usa el cliente al acceder al servidor HTTP: R= User-Agent
El final de una solicitud lo marca: R= Una lnea en blanco
Mensaje:
xito ..Ok Redireccin . Moved Permanently, Resource Temporarily Moved Error en el cliente . Bad Request, Unauthorized, Forbidden Error en el servidor. Internal Server Error
Cuando tenemos una aplicacin web con mltiples pginas ASP.NET, lo ideal es que cada pgina sea independiente de las dems para facilitar su mantenimiento y su posible reutilizacin.
Cuando queremos redirigir al usuario a una URL concreta, lo nico que tenemos que escribir es lo siguiente: 14
R= Response.Redirect (http://csharp.ikor.or)
El mtodo ______ de la clase _______ redirige al explorador del cliente a la URL especificada utilizando la respuesta HTTP adecuada, mediante el uso del grupo de cdigos de estado 3xx R= Redirect . HttpResponse
Cuando lo nico que queremos es enviar al usuario a otra pgina ASP.Net de nuestra propia aplicacin, podemos utilizar el mtodo_____ de la clase_____ R= Transfer.HttpServerUtility
El mtodo Undo se encarga de deshacer cualquier cambio que se hubiese efectuado al ejecutar el mtodo Do.
Todas las peticiones HTTP que reciba nuestra aplicacin se atienden a travs de nuestro manejador, esto se consigue aadiendo lo siguiente en seccin System.we de un fichero XML denominado Web.Config que contiene los datos relativos a la configuracin de una aplicacin ASP.NET
Los mdulos HTTP son clases que implementan la interfaz IHttpModule y se pueden usar para interceptar los mensajes HTTP correspondientes a solicitudes y a respuestas en varios momentos de su procesamiento, por lo que al implementar un mdulo HTTP, deberemos decidir cundo se interceptarn los mensajes.
Las hebras nos permiten ejecutar concurrentemente distintas tareas, para evitar que la pagina se quede en blanco mientras piensa o termina de ejecutar una accin.
Existen dos tipos de hebras:
La hebra principal se encargara de mostrarle al usuario el estado actual de la aplicacin, estado que se refrescara en su navegador automticamente gracias al uso de la cabecera Refresh, definida en el estndar para las respuestas HTTP.
Una hebra auxiliar ser la encargada de ejecutar el cdigo correspondiente a efectuar todos los clculos que sean necesarios para satisfacer la solicitud del usuario.
La clase auxiliar Results se limita a mantener una coleccin con los resultados de las distintas hebras que se hayan lanzado, para que la pgina de resultados pueda acceder a ellos.
Finalmente, la pgina encargada de mostrar los resultados se refrescar automticamente hasta que la ejecucin de la hebra auxiliar haya terminado y sus resultados estn disponibles.
15
Cabecera Cache-Control, que se utiliza en ocasiones para disminuir el trfico en la red no accediendo al servidor cada vez que, a travs del navegador, se accede a una URL.
La cabecera Cache-Control: no cache garantiza que no se utiliza ningn tipo de cache al acceder a determinada URL. Definicin de cabeceras HTTP especficas para modificar el comportamiento por defecto de una aplicacin web. En este caso, para que el usuario nunca acceda por error a versiones antiguas de las imgenes almacenadas en un directorio, se evita que su navegador almacene copias locales de estas imgenes.
Lo anterior equivale a: Response.AddHeader (Cache-Control, no-cache);
Para que una pgina ASP.NET quede almacenada en la cache de pginas y no sea necesario volver a generarla basta con usar la directiva @OutputCache al comienzo del fichero .aspx OutputCache Duration = 6 VaryByParam = none la pagina almacenada en cache caduca en 60 segundos, es decir se eliminara y en el siguiente acceso se volver a ejecutar la pgina.
Una cookie, es una pequea cantidad de datos almacenada en el cliente, es decir un par nombre- valor acompaado por una fecha de caducidad.
Los cookies se usan para mantener sesiones de usuarios (conjuntos de conexiones HTTP relacionadas desde el punto de vista lgico) y tambin para analizar los usos y costumbres de los usuarios de portales web.
Para utilizar las cookies en ASP.NET basta con acceder a las propiedad Request.Cookies y Response.Cookies.
El mtodo ProcessRequest es el encargado de procesar una solicitud HTTP concreta, a la cual se puede acceder utilizando el objeto de tipo HttpContext que recibe como parmetro.
El mtodo IsReusable, sirve simplemente para indicar si una instancia de IHttpHandler puede utilizarse para atender distintas solicitudes HTTP o deben crearse instancias diferentes para cada solicitud recibida.
SessionStateModule es un modulo HTTP que se encarga de la gestin de sesiones de usuario en ASP.NET.
Objetos:
HttpContext El entorno en el que se atiende la peticin Request La peticin HTTP realizada por el cliente Response La respuesta HTTP devuelta por el servidor 16
Server Algunos mtodos tiles Application Variables globales a nivel de la aplicacin (comunes a todas las solicitudes recibidas desde cualquier cliente) Session Variables globales a nivel de una sesin de usuario (comunes a todas las solicitudes de un cliente concreto)
Application y Session nos permiten manejar con comodidad las sesiones de usuarios en ASP.NET
En otras palabras, mientras que HttpContext, request y Response proporcionan el contexto de una solicitud concreta, ViewState permite mantener el estado de un formulario concreto y finalmente Session y Application proporciona un mecanismo sencillo para almacenar informacin del estado de una aplicacin web.
Un array asociativo es un vector al que se accede por valor en vez de por posicin.
Fichero opcional en el que se incluye el cdigo destinado a responder a eventos globales: R= Global.asax.cs
Los mtodos Session_Start y Aplication_Start se invocan cuando comienza una sesin de usuario y cuando arranca la aplicacin web.
El identificador de sesin es un nmero aleatorio de 120 bits que se codifica como una cadena de caracteres ASCII, y se trasmite utilizando la cookie ASP.NET_SessionId.
Para seleccionar la forma en la que deseamos transmitir el identificador de la sesin, lo nico que tenemos que hacer es modificar el valor del atributo cookieless del elemento SessionState que aparece en el fichero XML llamado Web.Config, por defecto su valor es False lo cual indica que se utilizara la cookie ASP.NET_SessionId. Si ponemos la propiedad a true evitamos el uso de cookies en ASP.NET
InProc. Los datos correspondientes a las sesiones de usuario se almacenan en la memoria del proceso encargado de ejecutar las paginas ASP.NET
Proceso que nos permite mantener el estado de las distintas sesiones de usuario: R= aspnet.state.exe
Para utilizar el proceso anterior tambin conocido como servidor de estado hemos de especificar el modo StateServer en la seccin <SessionState/> del fichero web.config e indicar cul es la cadena de conexiones que permite acceder al servidor de estado.
Consiste en el nombre de la mquina en la que se est ejecutando dicho servidor de estado y el puerto TCP a travs del cual se puede acceder a l. R= La cadena de conexin
StateServer: Despliegue de una aplicacin web ASP.NET en una granja de servidores. El dispositivo NLB (Network Load Balancer) se encarga de repartir la carga entre varios servidores, mientras que los datos de las sesiones de usuarios se almacenan en el servidor de estado.
17
Para utilizar una base de datos SQL como soporte para el mantenimiento de las sesiones de usuario, lo primero que tenemos que hacer es crear la base de datos en el servidor SQL Server que se vaya a utilizar con este fin. Para ello, no tenemos ms que ejecutar una de las macros suministradas, InstallSqlState.sql para utilizar una base de datos en memoria (TempDB) o InstallPersisSqlState.sql para crear una base de datos (ASPState) que sobreviva ante posibles cadas del SQL Server.
Cuando utilizamos un servidor de estado fuera del proceso encargado de atender las peticiones, en los modos StateServer o SQLServer, los datos almacenados en las sesiones del usuario han de transmitirse de un proceso a otro, por lo que han de ser serializables. Esto es , las clases correspondientes a los objetos almacenados han de estar marcadas con el atributo (Seralizable)
Consiste en establecer la identidad de la persona que intenta acceder a la aplicacin, lo que se suele realizar a travs de un formulario de login. R= La autenticacin
Consiste en determinar si el usuario, ya identificado, tiene permisos para acceder a un determinado recurso: R= La autorizacin
La seccin de autentificacin delimitada por la etiqueta <authentication> se utiliza para establecer la poltica de identificacin de usuarios que utilizaran nuestra aplicacin, y tiene varios modos de autenticacin como son:
Forms: se emplea para utilizar formularios de autenticacin en los que seremos nosotros los que decidamos quin accede a nuestra aplicacin.
Passport: Permite que nuestra aplicacin utilice el sistema de autenticacin Passport de Microsoft
Windows: Se utiliza para delegar en el sistema operativo las tareas de autenticacin de usuarios, con lo cual slo podrn acceder a nuestra aplicacin los usuarios que existan previamente en nuestro sistema.
None: Deshabilita los mecanismos de autenticacin, con lo que cualquiera puede acceder a ella desde cualquier lugar del mundo sin restriccin alguna.
Cuando se selecciona el modo Forms para autenticacin, tenemos que indicar el formulario encargado de identificar a los usuarios de la aplicacin.
La seccin de autenticacin y autorizacin del fichero Web.config restringen el acceso a un directorio y a todos sus subdirectorios en la aplicacin web. No obstante, en los subdirectorios se pueden incluir otros ficheros Web.Config que redefinan las restricciones de acceso a los subdirectorios de nuestra aplicacin web. Lo que nos permite tener partes publicas y privadas
Cualquier usuario: <allow users=*>
18
Para utilizar nuestras mismas claves de Windows debemos especificar Windows como modo de autenticacin en el fichero Web.Config y deshabilitar el acceso annimo al directorio de nuestra aplicacin.
Cuando utilizamos Forms y el usuario ya se identifico, la llamada al mtodo RedirectFromLoginPage le ndica al IIS que debe darle permiso al usuario para acceder a la pgina a la que inicialmente intento llegar.
Un pool de conexiones, permite compartir recursos de forma eficiente entre varios usuarios de la aplicacin.
El protocolo HTTPS, esta basado en el uso de SSL (Secure Sockets Layer), un estndar que permite la transmisin segura de datos, para ello tenemos que instalar un certificado en el IIS y aade a los datos un cdigo de autenticacin HMAC (Keyed-Hashing for Message Authentication, RFC 2104), este cdigo sirve para garantizar su integridad, si alguien manupula el mensaje durante su transmisin, el cdigo HMAC no corresponder al mensaje recibido.
El modelo: encapsula el comportamiento y los datos correspondientes al dominio de la aplicacin. Las vistas: consultan el estado del modelo para mostrrselo al usuario.
Los controladores: son los encargados de permitir que el usuario realice acciones.
El en modelo MVC: las vistas y los controladores dependen del modelo, pero el modelo no depende ni de la vista ni del controlador. Esto permite que el modelo se pueda construir y probar independientemente de la presentacin visual de la aplicacin. Adems, se pueden mostrar varias vistas de los mismos datos simultneamente.
El mtodo InitializeComponent define el funcionamiento de la pgina al enlazar los controles de la pgina con el cdigo correspondiente a los distintos eventos.
Tener la lgica de la aplicacin separada por completo de la interfaz es algo necesario para poder realizar cmodamente pruebas que verifiquen el comportamiento de la aplicacin.
Controladores de pgina: Se utiliza un controlador independiente para cada pgina de la aplicacin web. El controlador se encargara de recibir la solicitud de pgina del cliente, realizar las acciones correspondientes sobre el modelo y determinar cul es la pgina que se ha de mostrar el usuario a continuacin.
Controladores de aplicacin:
Se centraliza el control de la aplicacin en un controlador nico que se encargue de tramitar todas las solicitudes que recibe la aplicacin web. Se llama front controller, que implementa dos partes:
Un manejador (handler) es el que recibe las peticiones. En funcin de la peticin y de la configuracin de la aplicacin (que podra almacenarse en un sencillo fichero XML) el manejador ejecuta la accin adecuada y elige la pgina que se le mostrara al usuario a continuacin.
19
Por otro lado el conjunto de acciones que puede realizar la aplicacin se modela mediante una jerarqua de comandos, utilizado la misma filosofa que permite implementar las operaciones de rehacer/deshacer en muchas aplicaciones. Todos los comandos implementa una interfaz unificada y cada uno de ellos representa una de las acciones que se pueden realizar. Al usar un controlador genrico e implementar las acciones como comandos independientes tambin facilitamos la fase de prueba de la aplicacin.
Los componentes de la interfaz de usuario son los controles que los usuarios interactan.
Los componentes de procesamiento de la interfaz de usuario (componentes de procesamiento para abreviar): son los que orquestan los elementos de la interfaz de usuario y controlan la interaccin con el usuario.
Los controladores de la interfaz engloban las vistas del modelo MVC con las tareas realizadas por los controladores MVC para adquirir, validar, visualizar y organizar los datos en la interfaz de usuario.
Los componentes de procesamiento se encargan de mantener el estado de la aplicacin y controlar la navegacin del usuario a travs de sus distintas pginas.
Mientras que los controles de la interfaz se encargan de garantizar el funcionamiento de un contexto de interaccin, los componentes de procesamiento controlan el flujo de control de un caso de uso.
Estos componentes de procesamiento se suelen denominar controladores de aplicacin. En ocasiones para evitar confusiones se denominan controladores frontales a los controladores MVC centralizados, haciendo referencia a que sirven de punto de acceso frontal para las aplicaciones web.
Los componentes de procesamiento o de aplicacin son responsables de gestionar el flujo de control entre las distintas pginas involucradas en un caso de uso, decidir como afectan las excepciones que se puedan producir y mantener el estado de la aplicacin entre distintas interacciones y ofrecerles a los controladores de la interfaz los datos que puedan necesitar para mostrrselos al usuario.
En el caso de las aplicaciones Windows, los formularios incluirn una variable de instancia que haga referencia al controlador de aplicacin concreto.
El controlador de aplicacin se coloca entre el modelo y la interfaz de usuario para orquestar la ejecucin de los casos de uso.
Las paginas web se componen de cabeceras, pies de pgina, mens o barras de navegacin
En la creacin de sitios web, la distribucin del espacio disponible para los distintos componentes de las pginas se puede efectuar, en principio, de dos formas diferentes: 1. Usando marcos (frames) para cada una de las zonas en las que dividamos el espacio disponible, o empleando tablas con una estructura fija que proporcione coherencia a las distintas pginas de 20
nuestra aplicacin. Si usamos marcos, cada marco se crea como una pgina HTML independiente y no se vera igual siempre, en funcin del navegador. 2. Usando tablas, pero si usamos tablas cada pgina deber incluir repetidos los elementos comunes a las distintas pginas. Modulo que se encarga del mantenimiento de las sesiones de usuario en todas las aplicaciones web ASP.NET: R= SessionStateModule
#include
Plantillas: En vex de que cada pgina incluya los detalles correspondientes a una plantilla general, podemos seguir la estrategia opuesta: crear una plantilla general en la cual se va sustituyendo en contenido manteniendo el aspecto general de la pgina. Para implementar esta estrategia en ASP.NET, se nos ofrecen dos opciones: usa una pgina maestra o utilizar un control maestro.
Pagina maestra: El usuario siempre acceder a la misma pgina .aspx pero su contenido variar en funcin del estado de la sesin. En la pgina maestra se reserva un espacio para mostrar un control u otro en funcin de la solicitud recibida.
Control maestro: Para evitar los inconvenientes asociados a la creacin de una pgina maestra, se puede utilizar un control maestro que se incluya en distintas pginas ASP.NET. El control maestro realiza las mismas tareas que la pgina maestra, salvo que, ahora, el usuario accede a distintas pginas .aspx
Los controles incluidos como parte de la biblioteca de clases de la plataforma .NET ofrece un mecanismo conocido con el nombre de enlace de datos (data binding) mediante el cual podemos asociarle valores de forma dinmica a sus propiedades. Este mecanismo nos permite, por ejemplo, mostrarle al usuario conjuntos de datos de una forma flexible, cambiar las opciones existentes o modificar el aspecto de la aplicacin en funcin de las preferencias del usuario.
El enlace de datos se realizar automticamente cuando invoquemos el mtodo DataBind asociado al control.
El mecanismo de enlace de datos e puede utilizar tanto en la construccin de aplicaciones Windows como en la creacin de aplicaciones web con ASP.NET. Los formularios Windows permiten automatizar las actualizaciones en el conjunto de datos. En ASP.NET, las actualizaciones tendremos que implementarlas manualmente.
Un conjunto de botones de radio asp:RadioButtonList, para mostrar un conjunto de opciones mutuamente excluyentes.
Un conjunto de botones de comprobacin asp:CheckBoxList, cuando las distintas opciones no son mutuamente excluyentes.
Una lista convencional de tipo asp:Listbox, o, incluso, Una lista desplegable de valores asp:DropDownList (cuando no dispongamos de demasiado espacio en pantalla). 21
Sea cual sea el control utilizado, los valores permitidos se definen utilizando componentes de tipo asp:ListItem.
La clase System.Array es la clase que representa un vector en la plataforma .NET y sirve como base para todas las matrices en C#. Por su parte, la clase System.Collections.ArrayList nos permite crear vectores de tamao dinmico. Ambas clases implementan el mismo conjunto de interfaces (IList, ICollection, IEnumerable, ICloneable) y pueden utilizarse para enlazar colecciones de datos a las propiedades de un control.
Cuando queremos asignarle dos valores a las propiedades de cada una de las opciones de una lista, un simple vector no nos es suficiente. Hemos de utilizar colecciones que almacenen pares clave-valor, como es el caso de las colecciones que implementan la interfaz IDictionary, como pueden ser Hashtable o SortedList.
Una tabla hash, implementada en la biblioteca de clases .NET por la clase System.Collections.Hashtable, es una estructuras de datos que contiene pares clave-valor y est diseada para que el acceso a un valor concreto sea muy eficiente, O(1) utilizando la terminologa habitual en el anlisis de algoritmos. El nico inconveniente de usar tablas hash es que no se puede elegir el orden de presentacin de los elementos de la lista.
La funcin ReadXml() construye un conjunto de datos a partir del contenido de un fichero XML.
La funcin Server.MapPath() es la que nos permite buscar el fichero dinmicamente en el lugar adecuado; esto es, en el directorio donde tengamos instalada la aplicacin web.
La etiqueta asp:Repeater corresponde a un control ASP.NET que permite mostrar listas y permite aplicar una plantilla a la visualizacin de cada uno de los elementos del conjunto de datos.
El control asp:DataList es similar a asp:Repeater, si bien incluye por defecto una tabla alrededor de los datos. Adems, se puede disear su aspecto de forma visual desde el diseador de formularios del Visual Studio .NET.
La mayor parte de las veces que queremos mostrar un conjunto de datos, lo que nos interesa es mostrar esos datos en forma de tabla con varias columnas perfectamente alineadas. En ese caso, lo que tenemos que hacer es recurrir al control asp:DataGrid.
La paginacin consiste, bsicamente, en no trabajar con ms datos de los que resulten estrictamente necesarios.
Los formularios de manipulacin de datos se construyen en torno a tres elementos: - Un objeto que representa a una instancia de la entidad que el formulario manipula. - Un mecanismo que permita mostrar el estado del objeto. - Un mecanismo que permita modificar el estado del objeto.
Formularios maestro-detalle: Este tipo de formularios consiste, bsicamente, en mostrar los datos relativos a un objeto y, debajo, representar un conjunto de datos relacionados directamente con ese objeto.