Você está na página 1de 139

Programacin ASP.

NET

Visual Studio .NET 2008


ASP .NET

Programacin ASP.NET

1. Introduccin. El FrameWork de .NET.


2. El entorno de Desarrollo, caractersticas
3. Creacin de Formularios Web.
4. Codificacin en Formularios Web.
5. Depuracin de Aplicaciones Web.
6. Validacin de la Entrada de datos.
7. Conceptos bsicos de acceso a datos con
ADO.NET
8. Servicios Web XML
9. Manejo de Estado en las Aplicaciones Web ASP
.NET.
10. Configuracin, Optimizacin y Distribucin de
Aplicaciones Web ASP .NET.
11. Configuracin de la seguridad de las
Aplicaciones Web ASP .NET.
2

Programacin ASP.NET

Introduccin
.NET FrameWork
Commond Laguage Runtime
Biblioteca de clases
ADO .NET
ASP .NET
User Interface
Conclusin

Programacin ASP.NET

Definicin

Modelo de programacin consistente para


todas las plataformas
Interoperabilidad entre tecnologas
Fcil migracin
Soporte HTML, XML, SOAP

Programacin ASP.NET

Servicios comunes para ejecutara aplicaciones .net


Simplifica la programacin de objetos COM+, ya no es
necesario programar el comportamiento entre aplicaciones.
.NET Soporta clases, herencia, mtodos, propiedades,
eventos, polimorfismo, constructores
Commond Languaje Specification. Base compatible para
implementar cdigo con cualquier lenguaje.
Visual Studio .NET. Entorno de desarrollo multilinge.

Programacin ASP.NET

Commond Languaje Runtime (CLR)


. NET Framework library
ADO .NET
ASP .NET
Interfaz de usuario

Programacin ASP.NET

Descripcin

Simplifica desarrollo
por un entorno robusto
Soporta mltiples
lenguajes
Proporciona un
entorno gestionado
(Garbage collection,
seguridad)

Programacin ASP.NET

Class Loader. Carga en memoria y prepara para su ejecucin


MSIL (Microsoft Intermediate Languaje). Convierte MSIL a cdigo
nativo justa antes de ejecutar
Code Manager. Gestiona la ejecucin del cdigo
Garbage Collection. Controla el ciclo de vida de todos los
objetos
Security Engine. Permite tener seguridad por el origen del
cdigo y por el usuario
Debug Engine. Depurar y realizar trazas del cdigo
Type Checker. Evita uso incorrecto de variables no inicializadas
Excepcion Manager. Estructura de manejo de excepciones.
Thread Suport. Programacin multihilo.
Com Marshaled. Gestion de comunicacin de objetos com
.NET FrameWork Class Library Support.

Programacin ASP.NET

Namespace.

Organizacin Lgica de tipos y clases base relacionadas.


Un namespace puede agrupar otros namespaces

System. Contienen definicin de las clases fundamentales

Sytem.Collections. Ordenacin de listas, agrupacin de datos


System.IO. Entrada y salidad de datos a ficheros, streams.
System.NET. Protocolo TCP/IP y control de socket

..... .NET Framework SDK Documentation

Programacin ASP.NET

Nueva generacin de ActiveX Data Object


Soporta programacin desconectada
Provee soporte para XML
System.Data. Namespace que contiene la clase
DataSet
System.XML Namespace que soporta XML segn la
compilacin W3C.

System.XML.Xsl, soporta transformaciones.


System.XML.Serializacion, contiene la base para los
Servicios Web

10

Programacin ASP.NET

Apartado del framework que permite desarrollar potentes


aplicaciones Web
Elementos

ASP .Net Web Forms, permite desarrollar interfaces de usuario


ASP .NET Web Services, estructura para construir aplicaciones
web distribuidas
ASP .NET Web Services, se basan en protocolos estndar de
internet (HTTP, XML,SOAP)
System.Web, clases bsicas para el cacheado, seguridad,
configuracin
System.Web.Services, gestiona los servicios web
System.Web.UI, contiene los controles Html (HTMLControls) y
los controles web (WEBControls)

11

Programacin ASP.NET

Evolucin ms flexible de ASP


Pginas Web Dinmicas que pueden acceder los
recursos del Servidor
Procesamiento del lado del Servidor de Formulario
Web
Servicios Web XML que permiten crear
Aplicaciones Web distribuidas
Independiente del navegador
Independiente del Lenguaje

12

Programacin ASP.NET

Uso de herencia, constructores, destructores, sobrecarga,


polimorfismo permitiendo la potencia de C#
Estructura de gestin de excepciones anidadas
Programacin multihilo (multithreading)
Garbage Collection, evita que se queden objetos en
memoria sin utilizar.
Creacin web forms facilmente, programando eventos de los
controles como en formularios clientes
Creacin de Servicios Web rpidamente a modo de la
creacin de componentes de VB 6

13

Programacin ASP.NET

El Entorno de Desarrollo
Soporte de mltiples lenguajes
Ensamblados y referencias
Compilacin y ejecucin
Espacios de Nombre - Namespaces

14

Programacin ASP.NET

IDE (Integrated Development Evironment)


Elementos de un proyecto
Uso de las caractersticas del entorno
Depuracin de un proyecto
Compilacin en .NET

15

Programacin ASP.NET

Solo un entorno para todas las herramientas de


desarrollo
Una solucin puede contener mltiples lenguajes
Una solucin puede contener mltiples proyectos
Personalizar el entorno de trabajo
Visor de Internet integrado
Depuracin de cdigo

16

Programacin ASP.NET

Aplicacin Windows, Aplicacin estndar


Librera de Clases, a modo de dll de vb 6
Windows Control Library, Controles definidos por el usuario.
ASP .NET Web Aplication, aplicacin que se va a ejecutar en un
Internet Information Server.
ASP. Web Services, aplicacin que va a proveer de servicios XML a
aplicaciones clientes
Web Control Library, Controles de usuario para aplicaciones web.
Aplicacin de consola, se ejecuta en la lnea de comandos
Otras (Servicios Windows, proyectos vacos..)

17

Editor

Explorador de soluciones

Mostrar todos los ficheros


Anidar Elementos relacionados
Copiar Sitio
Propiedades sitio web

Ayuda Dinmica
Propiedades
Lista de Tareas

Modo diseo
Modo Edicin

Personalizar elementos

Explorador de servidores
Caja Herramientas

Data, Web Forms, Components, HTML


Programacin ASP.NET

18

Programacin ASP.NET

Facilita la anotacin de temas pendientes


Mostrar la ventana

Crear tareas directamente en la lista

Ver Lista de Tareas


CTRL + , + T
Se muestran en la seccin Tareas de usuario

Crear tareas mediante comentarios en el cdigo

Se muestran en la seccin comentarios


TODO texto de prueba
Editar la lista de palabras claves desde: Herramientas
Opciones (Activar la casilla) Mostrar todas las
configuraciones Entorno Lista de Tareas
Pulsando doble clic sobre la tarea va a la posicin del cdigo
asociada

19

Especificaciones
Crear un nuevo proyecto
Crear la interfaz
Escribir el cdigo
Compilar el proyecto
Testar y depurar
Distribuir / implantar el proyecto

Programacin ASP.NET

20

Carpeta para la solucin (.sln)


Utilizando localhost

Carpeta para los archivos web dentro de


inetpub\wwwroot

Carpeta para el ensamblado


inetpub\wwwroot\proyecto\bin

.vbproj, .aspx, web.config, global.asax. Asmx .ascx


.dll

Utilizando sistema de archivos

Carpeta para los archivos web dentro de la ruta


del sitio

.vbproj, .aspx, web.config, global.asax .asmx .ascx

Carpeta para el ensamblado ruta del


sitio\proyecto\bin

.dll

Programacin ASP.NET

21

Desde

el explorador de soluciones
Bin
.dll
App_Browsers .browser
App_Code .cs, .vb, .xsd
App_Data .mdb, .mdf, .xml
App_GlobalResources .resx
App_LocalResources .resx
App_Themes .skin, .css, .xsl
App_WebReferences .wsdl
Programacin ASP.NET

22

Programacin ASP.NET

Establecer puntos de ruptura


Propiedades
Ventanas Depuracin

Variables locales
Resultado de la compilacin
Ventana de Inspeccin
Pila
Puntos de Ruptura

Ventana de Comando

Cmd, immed

23

Programacin ASP.NET

Ensamblados (.dll , .exe y ficheros auxiliares)


.Net FrameWork tiene ensamblado predefinidos
Se crean automticamente cuando se construye un
proyecto
Referencias a elementos externos del proyecto.

.NET
COM
Proyectos

Men Proyecto Agregar Referencia

Botn derecho en el proyecto Agregar Referencia

24

Programacin ASP.NET

Compilacin automtica
Proceso mejorado ASP NET 2.0
Eliminacin pre compilacin en el IDE
Proveedores de construccin
personalizados
Compilacin dinmica en dos pasos
Analizar sintcticamente los archivos
Compilarlos
Precompilacin sobre la marcha
25

Programacin ASP.NET

Organizacin lgica de objetos relacionados


Crea Nombres perfectamente identificados para los objetos

Evita ambigedad
Evita conflicto con nombres entre clases

Uso de Import facilita la lectura del proyecto


Imports MiProyecto.Superior.EnSuperior
....
Dim y as New Interior()

Se puede acceder a cualquier elemento en un ensamblado


mediante su nombre cualificado

26

Programacin ASP.NET

Qu es un web Form
Crear ASP
Actualizar Html -> ASP
Tipos de controles Servidor
_VIEWSTATE
Controles HTML
Controles WEB
Controles Personalizados
27

Programacin ASP.NET

Combinacin de cdigo HTML +


controles que se ejecutan en el
servidor
Diferencia con ASP tradicional
Extensin .aspx
Pueden coexistir con pginas .asp o
.html
Ficheros .aspx.vb /.aspx.cs contienen el
cdigo asociado
28

Programacin ASP.NET

Tres niveles de atributos

Page, Definen funciones globales

<%@ Page Languaje=vb


CodeFile=WebForm1.aspx.vb SmartNavigation=true %>
<%@ Page Languaje=c# CodeFile =WebForm1.aspx.cs
SmartNavigation=true %>

Cdigo, gestin de eventos del formulario


<script> </script>

LayOut, presentacin de los datos

Body, Como se va a mostrar la pgina


< body>
....
</body>

Form, como se procesan grupos de control


< form id=Form1 method post runat=server>
....
</form>

29

Programacin ASP.NET

Languaje

CodeFile

Qu pgina contiene el cdigo

Inherits

Lenguaje en el que est escrita


Vb, c#, jscrip

Clase con la que va a trabajar

AutoEventWireup

Si hay que especifiacar los procedimientos para los


eventos o los toma dependiendo del nombre del
procedimientos
30

Programacin ASP.NET

Cdigo para ejecutar eventos del cliente


<script runat=server> el evento se ejecuta en
el servidor
Se recomienda programar los eventos de servidor
en el fichero de cdigo asociado para diferenciarlo
del cdigo que va a interpretar el navegador

31

Programacin ASP.NET

No tiene que ver con el concepto de formulario


Puedes tener varios <form> .. </form> en una web pero
solo uno que se ejecute en el lado servidor
Method, como se envian los valores al servidor

Post, datos se envian en parejas nombre/valor dentro de la


peticion http
Get, datos se pasan como un estring

Runat,identifica si se devuelve informacin al servidor

Runat=server, envia la informacin al servidor


No tiene, se ejecuta como un formulario HTML

32

Programacin ASP.NET

Nueva Sitio Web

Aadir un nuevo formulario

Crea por defecto Default.aspx


Mediante la opcin aadir nuevo elemento

Actualizar un formulario existente html

Renombrando el archivo a .aspx

33

Programacin ASP.NET

HTML server controls

Aadir runat=server para tratarlo en el modo servidor

Web server controls

Integrados, equivalentes a los controles HTML


Validacin, testar los datos introducidos
Enriquecidos, funcionalidad avanzada
Enlazados a datos
Controles Web, presentacin de datos en navegadores

34

Programacin ASP.NET

Acceso desde el lado de servidor


Las propiedades son todas tipo String, por lo que
solo se detecta los errores cuando se ejecuta
Esta dentro de una etiqueta <Form ...
Runat=server>

Interesa cuando utilizan funciones de java


Permite actualizar rpidamente una pgina html
con nuevas funcionalidades

<input type=text id=textname runat=server>

35

Programacin ASP.NET

Creados para ASP.NET


No tienen funcionalidad si no tienen
una etiqueta runat=server
Propiedades son tipadas, permite
detectar errores antes de compilar
Namespace
System.Web.UI.WebControls

36

Programacin ASP.NET

Cada vez que se pide una pgina se construye la


pgina y todos sus controles y se destruye despus de
que se envi al navegador para aumentar la capacidad
del servidor
Soluciona el problema de que se limpien los controles
cuando viaja entre el servidor y el cliente.
Control oculto _VIEWSTATE, guarda el estado dentro de
una seccin <form ... Runat=server>
Contiene un string de pares nombre-valor, con los
nombres de cada control y el ltimo valor
Cada peticin se actualiza el control
Habilitar viewState a nivel de @Page o a nivel de
control

<%@ Page EnableViewState=true %>


<asp:ListBox id=ListName EnableViewState=true
runat=server></asp:listbox>

37

Programacin ASP.NET

Creacin en tiempo de Diseo

Posicionamiento Absoluto o relativo

Desde la barra de herramientas de controles


Creacin del cdigo HTML de forma directa
Herramientas Opciones Diseador HTML Posicin CSS

PostBack

Hay controles que automticamente generan un postback


(button)
Otros controles (textbox) no lo tienen y sus eventos se
disparan cuando uno que si lo tiene se ejecuta
Se puede modificar el comportamiento modificando la
propiedad AutoPostBack a True del control

38

Programacin ASP.NET

Control de servidor

Equivalente HTML

Funcin

<asp:button>

<input type=submit>

Crea un botn que envia una


peticin al servidor

<asp:checkbox>

<input type=checkbox>

Casilla de verificacin

<asp:hyperlink>

<a href=...> </a>

Hiperenlace a una etiqueta


HTML

<asp:image>

<img srec=... >

Crea un rea para mostrar una


imagen

<asp:imagebutton>

<input type=image>

Botn con imagen en vez de


texto

<asp:LinkButton>

No tiene

Botn con apariencia de


hiperenlace

<asp:label>

<span> </span>

Texto que no puede modificar el


usuario

<asp:listbox>

<select
size=5></select>

Lista de elementos de seleccin


mltiple
39

Programacin ASP.NET

Control de servidor

Equivalente HTML

Funcin

<asp:panel>

<div></div>

Panel contenedor de controles

<asp:radiobutton>

<input
type=radiobutton>

Botn de radio

<asp:table>

<table> </table>

Crea una tabla

<asp:textbox>

<input type=text>

Cuadro de texto

<asp:literal>

No tiene

Texto

40

Programacin ASP.NET

Control

Funcin

CompareValidator

La entrada tiene que coincidir con otra entrada

CustomValidation

La entrada tiene que cumplir un criterio

RangeValidator

La entrada tiene que estar en un rango

RegularExpressionValidat
or

Tiene que cumplir un patrn

RequiredFieldValidator

Usuario tiene que entrar un valor antes de que se


procese el control

ValidationSummary

Recoge todos los mensajes de error de los


controles de validacin para mostrarlos
centralizados

41

Programacin ASP.NET

Control

Funcin

AdRotator

Secuencia de imgenes, aleatorias o no

Calendar

Muestra un calendario

42

Programacin ASP.NET

Control

Funcin

CheckBoxList

Columna de valores en formato checkbox

Repeater

Muestra informacin de un dataset utilizando un


conjunto de controles HTML, se repite para cada
valor del dataset

DataList

Similar al repeater pero en formato lista

DataGrid

Muestra la informacin de un dataset en columnas

DropDownList

Muestra los datos en un desplegable

ListBox

Muestra los datos en una ventana

RadioButtonList

Muestra una columna de botones de opcin

GridView

Versin avanzada del Data grid

43

Programacin ASP.NET

Label,

Muestra informacin que se puede modificar desde el cdigo


del servidor
Para texto fijo mejor utilizar el control literal de HTML
Utilizar la propiedad text para escribir el valor

TextBox

Muestra y recoge informacin del usuario


Propiedad text contiene el texto del textbox
TextMode, Formato del cuadro de texto

SingleLine, Multiline, Password

Columns, Rows, mximo ancho y largo del cuadro de texto


MaxLength, nmero de caracteres mximo

44

Programacin ASP.NET

Button

Boton que genera un postback al servidor


Tipo submit (por defecto), solo genera un postback
al servidor
Tipo command, indicar el nombre de la accin en la
propiedad commandName. Se gestiona con el
evento command
Propiedad CausesValidation, por defecto true, hace
que se valide el formulario

CheckBox

Permite seleccionar entre cierto y falso


Checked indica su estado
Text, el literal que muestra
Evento CheckedChange se ejecuta cuando hay un
cambio en la propiedad check.
Autopostback por defecto es false
45

Programacin ASP.NET

RadioButton

Seleccionar opciones de forma exclusiva


en un grupo
GroupName, todos los que tengan el
mismo valor se validan juntos
Text, contiene el ttulo
Checked, indica si est activo o no

46

Programacin ASP.NET

Trabajar con imgenes

<img src=rutainmagen />


Controles Asp.net

Image

Muestra una imagen en la web


Imageurl, indica la direccin de la imagen
AlternateText, texto que muestra si no se carga la imagn, y en
el texto de ayuda
GenerarteEmptyAlternateText, indica si queremos que se
genere texto alternativo de forma automtica
No tiene evento Click

47

Programacin ASP.NET

ImageButton

Muestra una imagen que si que tiene evento Click


ImageUrl, direccin de la imagen
Eventos Click y command iguales al del boton

ImageMapcontrol

Similar al imagebutton pero puedes definir un rea para que


sea clickeable
ImageUrl, es la imagen a mostrar
HotSpotArea, comportamiento cuando se pincha en un rea de
la imagen

PostBack, generar un postback al servidor pudiendo pasar un


texto como parmetro
Inactive, no hace nada

48

Programacin ASP.NET

Table

Muestra una tabla que se puede modificar en tiempo de


ejecucin aadiendo TableRow y TableCell
Hay que redibujar el control cada vez que sucede un postback
Calendar

Presenta un calendario, donde el usuario puede seleccionar


fechas
SelectionChanged genera un postback
Evento DayRender, poner texto cuando se cambia de da
VisibleDate, mes que se quiere mostrar
SelectionMode, como queremos seleccionar la informacin del
control

FileUpload

Muestra los controles para subir un archivo a internet


Hay que programar si queremos guardar el fichero
No genera un postback, por lo que hay que utilizar otro control
HasFile, indica si es un fichero lo que se ha selccionado
SaveAs, metodo para guardar el fichero
49

Programacin ASP.NET

Web.SiteMap

SiteMapPath

Enlaza con el XML y permite utilizarlo con otros controles


StartingNodeOffset

TreeView

Representa web.sitemap

SiteMapDataSource

XML con la representacin del sitio web

Representacin de un SiteMapDataSource
Formado por TreeNode
Permite colapsarse o expandirse

Menu

Representacin de un SiteMapDataSource
Formado por MenuItem
Permite programar eventos servidor o redireccin a pginas

50

Programacin ASP.NET

ListBox, lista de datos

Utiliza la coleccin Items que contiene todos los


elementos
Cada uno tiene la propiedad Text que es lo que muestra y
Value que es lo que devuelve al servidor
Se enlaza a un DataSource y a un DataMember
SelectedIndex, SelectedItem, SelectedValue es la forma
de acceder al elemento seleccionado

DropDownList

Similar al listBox, pero solo muestra los valores cuando


se despliega la lista

51

Programacin ASP.NET

CheckBoxList

Similar al listbox donde se puede hacer la seleccin


marcando las casillas
RepeatDirection y RepeatColumns son propiedades para
indicar como rellenar el control con los valores
Selected, indica si el item est seleccionado

RadioButtonList

Similar al chekboxList pero solo se puede seleccionar una


opcin

52

Programacin ASP.NET

AdRotator

Muestra una lista de imgenes de forma aleatoria


Obtiene la informacin de una base de datos o de un
fichero xml
ImageUrl, direccin de la imagen
NavigateURL, la direccin donde se va al pulsar
Impressions, frecuencia con la que se muestra
Height, altura de cada anuncio
Widt, anchura de los anuncios
Recomendable dejar las imgenes dentro de la carpeta
App_Data

53

Programacin ASP.NET

Simplifica la reutilizacin de cdigo y componentes del entorno de


usuario.
Es un fichero .ascx
Se compilan la primera vez que se llaman y se almacenan en la
cach de ensamblados
Tienen que estar integrados en un formulario, no puede contener
etiquetas <HTML>, <BODY>,<FORM>
Tiene cdigo asociado, se identifica en el apartado @control en vez
de @Page
<@ control Language=vb CodeFile=WebUserControl1.ascx.vb
inherits=test.webuserControl1 %>

Se puede escribir en distinto lenguaje que el formulario

54

Programacin ASP.NET

Creacin a partir de Visual Studio .NET

Las pginas interactan con el control


mediante propiedades
Recomendable el uso de flow layout
Aadir los elementos de la interfaz de
usuario
Aadir los procedimientos que interacten
con el Webform que lo albergue

55

Programacin ASP.NET

Quitar las etiquetas <HTML>, <BODY>,<FORM>


Si existe la directiva @page, sustituirla por una
@control
Renombrar la pgina de .aspx a .ascx
En la clase indicar
inherits=System.web.UI.UserControl
Crear las propiedades ya que el webform no
puede comunicarse directamente con los
controles que forman el control de usuario

56

Programacin ASP.NET

<%@ Register TagPrefix=demo TagName=NumeroValido


Src=CajaNumero.ascx %>

Se situa en un web form igual que cualquier otro control


@register, se utiliza para incluirlo en un formulario
TagPrefix, identifica un espacio de nombres, permite tener
varios controles sin conflicto
TagName, nombre nico para cada control
Src, identifica el control
No podemos utilizar posicionamiento absoluto con DHTML,
si lo queremos hacer tenemos que ponerlo dentro de un
panel

57

Programacin ASP.NET

Definir las propiedades del control, haciendo referencia a los controles


internos
Public Property pnum() as integer
Get
Return cint(txtnum.text)
End Get
Set (byval value as Integer)
Txtnum.text =value.tostring()
End Set
End Property

Uso de las propiedades del control, desde el WebForm que lo contiene


Protected Num1 as CajaNumero
Lblsum.text=Num1.Nnum.ToString()
Num1.Pnum=5

58

Programacin ASP.NET

Definicin

Beneficios

Sitio web con entorno consistente


Ahorro de tiempo de programacin
Podemos tener varias pginas maestras en un proyecto

Aadir una pgina Maestra

Pgina Maestra estructura heredable


Pgina Contenido personalizas cada pgina

Aadir desde Explorador de Soluciones un nuevo archivo index.Master

Aadir una pgina de Contenido

Aadir desde el explorador de soluciones un nuevo archivo del tipo


Web.Form activando la casilla Seleccionar pgina maestra

59

Programacin ASP.NET

Pginas de cdigo-behind
Eventos en Controles Web Server
Eventos de Pgina
Concepto de PostBack
Ejemplos de cdigo

60

Programacin ASP.NET

En el mismo fichero, entre el HTML

Difcil, seguir el cdigo


Utiliza en ASP
Pueden utilizar varios idiomas

En el mismo fichero, en una seccin aparte

Separado en una seccin SCRIPT

<SCRIPT Languaje=vb runat=server>


Sub btn_click(s As Object, e As EventArgs)_ Handles btn.Click
....
End Sub

</SCRIPT>

En un fichero separado

En la pgina de cdigo asociado


Cada fichero slo puede contener un idioma
61

Programacin ASP.NET

Accin que responde a una actuacin


del usuario con un control de la pgina
Tipo de evento por rea de ejecucin

Eventos de servidor
Eventos de cliente

Ejemplo de evento

Pulsar un botn Submit

62

Programacin ASP.NET

Se ejecuta en el equipo cliente, no se


enva informacin al servidor
Solo para controles HTML
Ejecutan inmediatamente
Eventos tipo onChange y mouse Keys
Sintaxis
<SCRIPT languaje=javascrip>

63

Programacin ASP.NET

Se ejecuta en el equipo servidor, la peticin se enva al


servidor para su proceso
Los procedimientos de evento es cdigo compilado que est
en el servidor
Sirve para controles HTML y Web
Soporta un nmero menor de eventos, por la demora del
envo de la informacin

Algunos OnChange
NO soporta MouseKeys

Sintaxis
<SCRIPT languaje=vb runat=server>
<SCRIPT languaje=c# runat=server>

64

Programacin ASP.NET

Acceso a los eventos

Al hacer doble clic sobre un control, se crea un evento


con el mismo Id que el control
Seleccionar el evento de la lista
Seleccionar el botn eventos en las propiedades del
control

Argumentos

El objeto que enva el evento (sender)


Una instancia del evento (e)

Tipo EventArgs, sin informacion adicional


Imgenes ImageClickEventArgs, informacin
de coordenadas
Utilizar Ctype para convertir sender

65

Programacin ASP.NET

AutoEventWireup

Si hay que especificar los procedimientos para los


eventos o los toma dependiendo del nombre del
procedimientos

Gestionar varios controles con HANDLED


Procedimientos de eventos personalizados

AddHandler
AddressOf

66

Programacin ASP.NET

Orden de generacin de los eventos

Page_init
Page_Load
Eventos de Control
Page_Unload

Hay eventos de control que no se ejecutan hasta que el Web


Form se enva al servidor (Change)
PostBack, envo de informacin al servidor
Se puede forzar si el control tiene la propiedad
AutoPostBack=true

67

Programacin ASP.NET

El evento Page_Load se ejecuta cada llamada


Propiedad page.isPostBack, determina si ya se ha
enviado al servidor
If not Page.IsPostBack then
Ejecuta solo la primera vez

End If
If (!Page.IsPostBack)
{
//ejecuta la primera carga
}

68

Programacin ASP.NET

Acceso a los controles de una pgina web

Objeto Me
Coleccin de controles

Escribir informacin

Asignar la informacin segn el tipo

control.propiedad=valor

Leer informacin

Almacenar la informacin en una variable


Utilizacin en una funcin

Variable=control.propiedad
If control.propiedad then..
69

Programacin ASP.NET

Asignar la imagen en tiempo de ejecucin

Propiedad imgUrl
Objeto Application.MapPath
Identificar la ruta a partir de la raiz ~ (alt 126)

Crear imgenes de distinto tamao en tiempo de


ejecucin

Clase Bitmap

Gestiona mapa de bits


Permite Guardar en formato bmp, jpg, gif, png con mtodo save
GetThumbnailImage

70

Programacin ASP.NET

Colecciones de elementos

Escribir informacin

Propiedad items
Mtodo ADD de la propiedad items
Asignar a un origen de datos

Leer informacin

Elemento Seleccionado
Recorrer la coleccin items
71

Programacin ASP.NET

Crear mens en tiempo de ejecucin

Leer informacin

Crear el nodo o el elemento


Aadir el nodo al men o al rbol
Propiedad Items y ChildItems en los mens
Propiedad Nodes en losTreeview
Recorrer el men/rbol mediante los nodos

Responder al Evento

Propiedades SelectedNode,
SelectedMenuItem
72

Programacin ASP.NET

Propiedades

Escribir informacin

Ejecuta el cdigo del apartado Set


Desde la pgina se utiliza control.propiedad=valor

Leer informacin

Se definen en el fichero de cdigo adjunto


Especificar el apartado Get y Set

Ejecuta el cdigo del apartado Get


Desde la pgina se utiliza Variable=control.propiedad

Eventos

Se programan en el control de usuario

73

Programacin ASP.NET

Desde la pgina Maestra

Trabajar como una pgina normal


Se ejecutan en el cdigo de master.vb

Desde las pginas de Contenido

Personalizar la ejecucin del evento segn la pgina


Gestionar el evento de un control
Hacer accesible el control con una propiedad
master.vb
Gestionar el evento desde la content aspx.vb
Gestionar con eventos personalizados genricos
Crear un evento personalizado
Lanzar desde la master el nuevo evento master.vb
Consumir el evento desde la content aspx.vb

74

Programacin ASP.NET

Informacin en tiempo de ejecucin


Activar la Traza
Utilizar el objeto TRACE
Uso de Traza a nivel de Aplicacin
Pgina de Error Personalizada

75

Programacin ASP.NET

Activar modo depuracin

De forma automtica
Mediante la herramienta de configuracin
Aadiendo debug=true en web.config

Establecer puntos de ruptura


Pausar el cdigo al ejecutar la sentencia marcada
Se puede establecer condiciones
Ventanas Depuracin

Variables locales
Ventana de Inspeccin
Puntos de Ruptura

76

Programacin ASP.NET

Volcar informacin mediante objetos Debug y Trace


Tipos de informacin

Las sentencias Trace no se muestra sino se activa en


web.config o en la cabecera @page

Mostrar valores de variables


Determinar cuando se cumple una condicin con Trace.Writeif
Seguir el proceso de ejecucin

No es necesario quitar o comentar todo el cdigo

El objeto Debug solo se muestra cuando se ejecuta en modo


depuracin

77

Programacin ASP.NET

A nivel de pgina, solo muestra informacin de traza en la


pgina en la que se activa

<%@Page Languaje=vb Trace=true %>


Se aade la informacin de traza al final de la pgina
Todos las sentencias Trace.Write sern visibles

Si se activa la traza a nivel de aplicacin, tambin se


muestra la informacin de pgina

78

Programacin ASP.NET

Trace.Write y Trace.Warn son iguales salvo que Warn muestra el


mensaje en rojo.
Muestran mensajes en la traza
Sintaxis
Trace.Write(Categoria,Mensaje)

Categora, sirve para agrupar los mensajes

Ejemplo
Trace.Write(Mi traza, Empieza el cdigo de usuario)

Trace.IsEnabled

indica si la traza est activa


Se puede modificar en tiempo de ejecucin

Trace.IsEnabled=False Desactiva la traza

79

Programacin ASP.NET

Muestra la informacin al final de la pgina


Divide la informacin

Informacin de la solicitud
Informacin de Seguimiento, datos tanto estndar como los generados
por el objeto TRACE
rbol de Control, los elementos y su tamao
Estado de la sesin, variables de sesin
Estado de la aplicacin, variables globales
Lista de Cookies, lista de cookies utilizadas en metodos recuest
Lista de Cookies de respuesta, lias de cookies en mtodos response
Coleccin de encabezados, informacin de la cabecera HTML
Coleccin de formularios, valores devueltos al servidor
Coleccin de cadenas de respuesta,valore sen querystring
Variables de servidor, las variables del servidor

80

Programacin ASP.NET

Aplica la traza a todas las pginas del proyecto

Men Sitio Web Configuracin ASP .NET Aplicacin Depuracin y


Seguimiento Capturar informacin de seguimiento
Modificar el fichero web.config

<trace enabled=true pageOutPut=true LocalOnly=true/>

Relacin con el atributo trace de @page.

Si est activo en @page, se muestra siempre

Si no est definido se muestra siempre

Si est a false no se muestra la traza


Mostrar seguimiento.. (PageOutPut), indica si se muestra la informacin en la
pgina o si se almacena en memoria

Cuando est en memoria ejecutar \\servidor\proyecto\trace.axd


Mostrar resultado para.. (LocalOnly), solo se muestra la traza en la mquina
local. No se puede acceder desde otra mquina

81

Programacin ASP.NET

Redirigir el error ha una pgina amigable para el


usuario
Se define en el web.config

Directamente editando el fichero


Desde la herramienta de configuracin de la aplicacin

Podemos utilizar cualquier pgina del proyecto


Atributos

CustomErrorPage la pgina a mostrar


LocalOnly si se ven los errores en local o no

82

Programacin ASP.NET

Utilidad de los controles de validacin


Tipos de controles
Propiedades comunes
Control personalizado
Page.IsValid

83

Programacin ASP.NET

Verifican que los datos son vlidos o que se han introducido


todos los valores necesarios
Evitan

Datos incorrectos antes de que se procesen en el servidor


Spoofing, sustitucin de cdigo HTML en el cliente, mediante la
verificacin de los datos en los dos lados cliente/servidor
Cdigo malicioso, provocar desbordamiento del servidor con cadenas
de texto muy largas y SQLInyection mediante los input box

Verificacin en el lado cliente y servidor

Cliente, comprueba cuando se pulsa un botn submit, si no se cumple


no enva la informacin al servidor
Servidor, se vuelve a validar la informacin

84

Programacin ASP.NET

CompareValidator, compara el contenido de ese control


con el de otro control del mismo WebForm.

CustomValidator, cdigo de comprobacin personalizado


RangeValidator, Comprueba que el valor esta dentro de un
rango.

Type indica el tipo de datos a validar


Hay que indicar MinimunValue, MaximumValue

RegularExpressionValidator, el contenido tiene que cumplir


un formato determinado

Type indica el tipo de datos a comparar


Operator, tipo de comparacion

www.regular-expressions.info

RequiredFieldValidator, Obliga a introducir un valor en el


campo, se puede usar junto con los otros controles
ValidationSummary, resumen de los errores de los
controles de validacin de la pgina

85

Programacin ASP.NET

Todos los controles de validacin menos el


ValidationSummary tienen propiedades especificas
comunes

Controltovalidate, control de la pgina a validar


EnableClientScript, validar los datos en el cliente
ErrorMenssage, texto que va a mostrar si no se cumple el
criterio en el control ValidationSummary.
Text, mensaje que muestra en el caso de error, si se deja en
blanco muestra el texto que haya en ErrorMenssage
Display, comportamiento de los controles en el caso de
FlowLayout

Static, reserva espacio para las etiquetas aunque no se muestren


Dynamic, no reserva espacio, cuando se muestra el error, se ajusta
el formulario
None, no muestra errores

86

Programacin ASP.NET

Se ejecuta en el lado del cliente y servidor


Permite programar cdigo
Propiedades propias

ClienteValidationFunction, nombre del script que se ejecuta en


el cliente
OnServerValidate, nombre del que se ejecuta en el servidor

87

Programacin ASP.NET

Propiedad del objeto Page que es true si todos los controles de


validacin son correctos
Cuando se ejecuta se muestra el control ValidationSummary si es
el caso
If Page.IsValid then

lblResultado=Correcto
End If

88

Programacin ASP.NET

Presentacin
Controles Enlazados
DataBinding

89

Programacin ASP.NET

Modelo ASP 2.0 vs ASP 1.1


Nuevos controles

DataBindig Enlazar controles a un origen de datos

Ms ligeros
Ms fciles de utilizar
Menos cdigo para obtener los mismos resultados

Simple, enlaza un control a un campo del origen de datos.


Compleja, enlazar un control a varios campos de un origen de
datos

App_Data

Carpeta por defecto para establecer los orgenes de datos


Puede contener Access (mdb), SQL Express (mdf), XMl

90

Programacin ASP.NET

Tipos

Especficos para enlazar a origen de datos GridView

Generales, se pueden enlazar aunque con limitaciones TextBox

Mixtos, permiten trabajar con un origen de datos o independientes


ListBox
Controles de Acceso a datos, no son visibles pero permiten enlazar a
otros controles SQLDataADapter

Cadenas de conexin

Genera automticamente en funcin del origen de datos


Muestra por defecto el contenido de App_Data
Permite guardarlas en web.config

DataSource vs DataSourceid

DataSourceId, indica el control de origen de datos, en cambio


Datasource indica el objeto de origen de datos

91

Programacin ASP.NET

SqlDataSource

AcessDataSource

Enlaza con objetos de negocio definidos en una clase


Seleccionar el objeto y los mtodos a utilizar

XmlDataSource

Enlaza con bases de datos Access


Igual que el anterior pero ms limitado

ObjectDataSource

Enlaza con un origen de datos SQL (no solo SQL Server)


Especificar base de datos, consulta/ tabla, filtros, ordenacion

Enlaza con un origen de datos XML


Especificar archivo, el archivo de transformacin (si es necesario) y
xPath para indicar el tipo de nodo a mostrar

SiteMapDataSource

Enlaza con web.sitemp para crear la estructura de navegacin del


sitio

92

Programacin ASP.NET

ListBox, DropDownList, CheckBoxList,


RadioButtonList, BulletedList

Permiten trabajar enlazados a datos o de forma


independiente
Tienen propiedades comunes para el enlace a datos

DataSourceId, identificador del control origen de datos de


donde van a cargar la informacin
DataValueField, nombre del campo con el que se rellena la
propiedad value de cada item
DataTextField, nombre del campo con el que se rellena la
propiedad text
DataMemeber, en el caso de que el origen de datos tenga
varios conjuntos de resultados, indicar el que se va a utilizar

93

Programacin ASP.NET

Repeater

Muestra informacin de cada registro del origen de datos en


una fila
Hay que especificar los campos que se quieren mostrar desde
la ventana de cdigo

DataList

Muestra la informacin de cada registro del origen de datos en


una fila del control
Permite indicar que campos queremos mostrar mediante
plantillas
Es la versin avanzada de Repeater

94

Programacin ASP.NET

GridView

DetailsView

Muestra informacin en formato tabla


Esta formado por una coleccin de GridViewRow (Filas) y
DatacontrolField (Columnas) que dan lugar a
DataControlFieldCell (Celdas)
Cada Fila contiene una coleccin de celdas (cell)
Formato se puede dar mediante el asistente
Muestra nicamente un registro de un origen de datos
Permite navegar por los registros con la propiedad AllowPaging
Se utiliza junto a Gridview para crear formularios
maestro/detalle

FormView

Similar a Details View, pero con ms funcionalidad


Permite la edicin de plantillas para los distintos modos,
seleccin, edicin e insercin
95

Programacin ASP.NET

Enlazar controles a un origen de datos


Propiedad DataSource, identifica el origen de datos
puede ser un dataSet,
Propiedad DataSouerceID, indica el control origen de
datos que est vinculado a los datos
Propiedad DataMember, dentro de un origen de
datos con mltiples tablas puede especificar la tabla
o la vista que queramos asociar
Propiedad DataKey, el campo clave del control
cuando se selecciona un elemento del mismo
Metodo DataBind, actualiza los datos que recibe a
travs de la propiedad DataSource.

96

Programacin ASP.NET

Presentacin
Integracin con DataSet de ADO
XMLDataDocument
XMlDataTransform
Control Web XML
Servicios Web

97

Programacin ASP.NET

Mtodo uniforme de intercambiar datos entre ordenadores


Estn definidos tanto los datos como la estructura
La estructura es independiente de los datos y se puede
ampliar en cualquier momento
Concepto de XML Bien Formado
XML Vlido si el vocabulario cumple con el formato del
esquema

XSD, Schema Definition Language, norma recomendada por


W3C para validar XML

98

Programacin ASP.NET

XSD, estndar de definicin de lenguajes


XSLT, Extensible Stylesheet Transformation,
lenguaje para transformar ficheros XMl
XPath, Lenguaje para recorrer elementos de un
XML mediante un rbol de nodos
DOM, Document Object Model, es una
representacin en memoria de un XMl que se
puede navegar por l mediante nodos
XQuery, permite extraer e interpretar informacin
XML

99

Programacin ASP.NET

Estndar de internet. World Wide Web Consortium (W3C)

XML 1.0 - http://www.w3.org/TR/1998/REC-xml-19980210 including DTD support.


XML Namespaces - http://www.w3.org/TR/REC-xml-names/ both stream level and DOM.
XSD Schemas - http://www.w3.org/2001/XMLSchema
XPath expressions - http://www.w3.org/TR/xpath
XSLT transformations - http://www.w3.org/TR/xslt
DOM Level 1 Core - http://www.w3.org/TR/REC-DOM-Level-1/
DOM Level 2 Core - http://www.w3.org/TR/DOM-Level-2/

En el Framework es el espacio de nombres System.Xml

100

Programacin ASP.NET

Cargar informacin en un dataset desde un fichero


xml

ReadXML, lee los datos y el esquema y lo pasa a un data


set
Lee desde un objeto xmlReader (string, filestring)

Dim xmlFilename As String = "XmlDocument.xml"


Dim fsReadXml As New System.IO.FileStream _ (xmlFilename,
System.IO.FileMode.Open)
Dim xmlReader As New System.Xml.XmlTextReader(fsReadXml)
Dim ds As New DataSet("New DataSet")
ds.ReadXml(xmlReader)

101

Programacin ASP.NET

Exportar el contenido de un data set a un fichero


XML

WriteXML, escribe los datos y el esquema a


un objeto stream, string, TextWriter,
xmlWriter
xmlWriter, escribe sobre un fichero XML

Dim ds As DataSet
Dim writer As new XmlWriter (Server.MapPath(export.Xml))
ds.WriteXml(writer)

102

Programacin ASP.NET

Metodos de DataSet

ReadXmlSchema,Leer el esquema de un
data set de un fichero XML. No los datos
WriteXmlSchema,Escribir el esquema en
un fichero, no los datos
Dim ds As DataSet
Dim writer As XmlWriter
ds.WriteXmlSchema(writer)

103

Programacin ASP.NET

Muy ligado a los DataSet, permite manipular los datos


directamente o a travs del dataSet
Permite navegar mediante nodos
Podemos utilizar como elemento para la trasformacin de
XML con xmlTransform
Load, cargar la informacin directamente del documento
XMLDataDocument doc = new XmlDataDocument;
Doc.Load(server.MapPath(file.xml));

ReadXML, carga el documento en un dataset


Dim doc as XmlDataDocument = new XmlDataDocument()
doc.DataSet.ReadXML(Server.MapPath("store.xml))

104

Programacin ASP.NET

El DataSet del objeto es la


representacin en ADO de la
estructura del XML
Asignar a un control el origen de
datos
Dg.DataSource = xmlDoc.DataSet

Extraer informacin
Dim elem as Xmlelement
Elem= xmlDoc.getElementFromRow(ds.Tables(0).rows(1))
105

Programacin ASP.NET

Permite escribir un fichero XML o mostrar


informacin XML en el
WebForm
La informacin se muestra donde est ubicado el
control
Crear un control

Llevndolo desde la barra de controles


Escribiendo <asp:XML id=xmldoc runat=server/>

106

Programacin ASP.NET

Cargar datos al control

Propiedad DocumentSource, indicando la ruta del xml


En el evento Page_Load, asignar la ruta a la propiedad
Document.
Introducir el texto entre la etiquetas < >

TransformSource, permite asignar un fichero de


esquema control
Crear un objeto XML y asignarlo a un control

107

Programacin ASP.NET

Similar a los componentes de programacin


Lenguaje independiente que el del web form
Independiente de la plataforma de desarrollo.
Basado en estandares de W3C
Se utiliza para compartir elementos de
programacin entre aplicaciones.

108

Programacin ASP.NET

Universal Description, Discovery and Integration


(UDDI) protocol

www.uddi.org, uddi.microsoft.com
Especificaciones para ubicar servicios web a travs de
internet

Ficheros descubrimiento .disco .vsdisco, contienen


la informacin de donde encontrar servicios. Se
crean automticamente cuando se programa el
servicio
Ficheros de descripcin .wsdl, tiene las
especificaciones del servicio web

109

Programacin ASP.NET

Acceder a la pgina web del servicio.

WsdlHelpGenerator.aspx

Seleccionar el servicio de la lista


Rellenar los parmetros si es caso y
clicar en Invocar
El servicio devuelve la informacin en
XML

110

Programacin ASP.NET

Aadir la referencia Web al proyecto


Crear un objeto a partir de la referencia
Dim ws as new prueba.localhost.servicio1

Utilizar los mtodos del servicio web a


travs del objeto
Lbltitulo.text=ws.escribirHolaMundo

111

Programacin ASP.NET

Crear un proyecto utilizando la plantilla Servicio Web.


Archivo .asmx

@web Service, el nombre del archivo


Languaje, en que est escrito
Codebehaind page, cdigo del archivo
Class, la clase del servicio

El cdigo se escribe igual salvo que se pone <webmethod>


delante de la funcin que queremos compartir

<WebMethod(Description:= texto descripcin)>, La


descripcin del servicio web

112

Programacin ASP.NET

Introduccin al estado de las aplicaciones


Global Asax
Cookies

113

Programacin ASP.NET

Cada pgina se destruye en cada peticin, necesario un


sistema para mantener la informacin globalmente
Lado del servidor

Application, la informacin es accesible para todos los usuarios


Session, la informacin solo es accesible para un usuario en
concreto
SQL, almacenar la informacin en una base de datos
Objeto Cach, guarda la informacin a nivel de aplicacin

Lado del cliente

Cookies, fichero de texto en el equipo del cliente


Propiedad, ViewState, automticamente retine los valores
Query String, se aade la informacin a la URL

114

Programacin ASP.NET

Todas las aplicaciones tienen un


global.asax
Se almacena en el directorio virtual de
la aplicacin
Gestiona eventos de inicio y fin de
aplicacin y de sesin
Es opcional

115

Programacin ASP.NET

Eventos ms usuales

Applcation_Start, cuando se inicia la aplicacin


Application_End, cuando se finaliza
Session_Start, cuando inicia un usuario
Session_End, cuando Finaliza un usuario
Application_Error, Cuando se da un error que no ha sido canalizado

Inicializacin de Variables

Objeto Application, comparte informacin para toda la aplicacin


Objeto Sessin, solo sobre el usuario
Se define la variable identificando el objeto y el nombre que queremos
darle
Session(Fondo)=beige
Application[numeroVisitas]=0;

116

Programacin ASP.NET

Establecer valor a la variable


Session(Fondo)=beige

Bloqueos, evitar concurrencia

Application.Lock
Application.Unlock
Application.Lock
Application[NumeroVisitas]+=1
(int)Application[NumeroVisitas]=(int)Application[NumeroVisitas]+1;

Application.Unlock

Leer las variables, asignar el valor a un objeto o control


FondoControl=Session(Fondo)
lblNVisitas.text=Application[NumeroVisitas].to string

117

Programacin ASP.NET

Almacena automticamente el estado de los controles de la


pgina
Se puede desactivar desde la directiva @page ViewState=False
Almacena la informacin en objetos StateBag que se pasa como
control oculto en las peticiones http
Podemos utilizarlo para almacenar informacin entre pginas
Se puede cifrar con viewStateEncryptionMode =Always
Public Property Indice() As Integer
Get
Dim o As Object =
ViewState("Indice")
If (IsNothing(o)) Then
Return -1
Else
Return CStr(o)
End If
End Get
Set(ByVal value As Integer)
ViewState("Indice") = value
End Set
End Property

public int Indice


{
get
{
object o = ViewState[Indice"];
return (o == null)?-1 :(int)o;
}
Set
{
ViewState[Indice"] = value;
}
}
118

Programacin ASP.NET

Crear cookies

Cookies Temporales

Con la propiedad Cookie de los objetos Response y


Request
Generan un objeto HttpCookiecollection
Se crea el objeto pero no se guarda en disco.
Se borra cuando acaba el tiempo de sesion o cuando se
cierra el navegador

Cookies Permanentes

Se guardan en disco

119

Programacin ASP.NET

Crear un cookie
Dim objCookie as new httpCookie(miCookie)
Dim now as datetime=dateTime.Now

Aadir elementos y asignar valores


objCookie.Values.Add(hora, now. To string)
objCookie.Values.Add(Fondo,green)

Establecer tiempo de expiracin Persistente


objCookie.Expires=now.addHours(1)

Aadimos el cookie a la coleccin


Response.cookies.add(objCookie)

120

Programacin ASP.NET

Primero leer el cookie


Dim objCK as httpCookie=Request.Cookies(myCookie)
httpCookie objCK=Request.cookies[myCookie];

Segundo leer el par clave valor


lblTime.text=objCK.Values(hora)
lblTime.BackColor=System.Drawing.Color.FromName(obkCK.Values(Fondo))
Lbltime.text=objCK.values[hora]
lblTime.backColor=System.Drawing.Color.FromName(obkCK.Values[Fondo]);

121

Programacin ASP.NET

Objeto Cach
OutPut Cache
Implantacin del proyecto

122

Programacin ASP.NET

Cada aplicacin tiene un objeto


Permite almacenar elementos en memoria la primera vez
que se utilizan y a partir de ese momento volver a utilizarlos
El objeto Cache no contiene informacin solo la referencia al
objeto y sus dependencias
Podemos usarlo para pasar valores entre pginas de la
aplicacin ya que permite almacenar variables a nivel de
aplicacin
Tiene bloqueos incorporados para el uso de los objetos
Se eliminan automticamente los objetos de la cach, junto
con sus dependencias

123

Programacin ASP.NET

Crear una variable de forma implicita


Cache(mivariable)=valor
Cache[mivariable]=valor;

Crear variables de forma explicita con Insert y


parmetros
Cache.Insert(miVariable,valor, Dependency,
AbsoluteExpiration, SlidingExpiration,
CacheItemRemoveCallBack)

Utilizar la variable
Lblvalor.text=cache(mivariable)
Lblvalor.text=cache[mivariable];

124

Programacin ASP.NET

Cuando se queda sin memoria se eliminan de forma automtica los


objetos ms viejos

AbsoluteExpiration, propiedad datetieme en la que expira el objeto de


la cach

Cache.insert(mivariable,valor,Nothing,Datetime.Now.AddMinutes(5),nothing)

SlidingExpiration, propiedad timeSpan tiempo que expira en funcin


del ltimo acceso

Cache.Insert(miVariable,valor,null,null,TimeSpan.FromSeconds(20));

Dependencies, identifica de que objeto depende. Cuande se elimine o


expire ese objeto se eliminan todas sus dependencias

Cache.Insert(miVariable,valor,new CacheDependency(mydoc.xml)

CachItemPriority, los que tengan ms prioridad son los ltimos en


eliminarse en caso de que tenga poca memoria

Cache.Insert(miVariable,valor,null,null,CacheItemPriority.High, onremove);

125

Programacin ASP.NET

Mejorar rendimiento cacheando una pgina o partes de una


pgina
Tipos de Output Cache
Pgina, almacena todo un web form
Parcial, almacenar controles estticos de una pgina
como controles de usuario
En el fichero .ascx
<%@ OutputCache Duration =120 %>
Web Services, almacena el resultado del web service sin
volver a llamarlo
<WebMethod(cacheDuratio:=300)>
[WebMethod(cacheDuratio:=300)]

126

Programacin ASP.NET

Compilacin Dinmica
Precompilacin

Copiar los archivos al servidor web


No Necesarios

Necesarios

Archivos de solucin (.vbproj)


Archivos de recursos .resx, ya estn compilados en las dll
Pginas de cdigo .vb, ya estn compilados
\bin y su contenido
Web Form, Controles de Usuario y Servicios Web(.aspx,.asmx.ascx)
Ficheros de configuracin
Archivos complementarios (imgenes, xml)

Identificar en el IIS el proyecto como aplicacin


Permisos para Network Service
No es necesario registrar el contenido de /bin
Poner el sitio fuera de linea con APP_OFFLINE.HTM

127

Programacin ASP.NET

Introduccin
Autenticacin - Autorizacin
Seguridad integrada IIS
Seguridad Forms

128

Programacin ASP.NET

Establecer diferentes sistemas para asegurar las


aplicaciones web
Sistema complementario a la seguridad de la base de datos
IIS permite establecer distintos niveles de seguridad de
forma automtica
Establecer la comunicacin con SSL para asegurar la
transmisin de los datos

129

Programacin ASP.NET

Autentificacin

Autentificarse, identificarse en el sistema


Validarse contra el sistema

Autorizacin

Proceso posterior a la autenticacin


Verificar el nivel de acceso a un recurso en
concreto

130

Programacin ASP.NET

Basada en Windows

Basada en Formularios

Utiliza la seguridad de IIS


Util para intranets ya que utiliza la estructura de windows
No es muy til para la mayora de aplicaciones web
Codificar manualmente la validacin
Si es correcta el sistema enva un cookie al usuario
til para cualquier aplicacin
Soporta todo tipo de clientes
Problemtico por usar cookies

Microsoft Passport

Servicio Web de Microsoft


Una sola validacin para multiples aplicaciones
Tiene coste
Utiliza cookies

131

Programacin ASP.NET

Niveles Autentificacion IIS

Annimo, no hay autentificacin


Bsica
Se enva usuario y contrasea en modo texto
Se puede encriptar con SSL
Texto
Se enva la informacin codificada
Requiere Directorio Activo
Integrada
Utiliza Kerberos
Bueno para intrantet, malo para internet
Problemas con cortafuegos

132

Programacin ASP.NET

Configurar la seguridad en el IIS

Desde la consola de administracin escoger el nivel de


seguridad

Bsica

Texto

Integrada
Establecer la autentificacin en Web.Config

<system.web>
<authentication mode=windows />

</system.web>

133

Programacin ASP.NET

Establecer la autorizacin en Web.Config

Establecer una seccin <Location> que indique que pginas son las
que hay que autorizar
Se pueden establecer varias secciones <Location>
Se puede indicar una carpeta o una pgina
<location path=consulta.aspx>
<system.web>
<authorization>
<deny user=? />
</authorization>
</system.web>
</location path>

Deny user, niega el acceso a un usuario en concreto

?, a acceso annimo
* todos los accesos

Allow User, permite a un usuario en concreto

134

Programacin ASP.NET

Ejecutar el cdigo con usuario predeterminado usando la


clave <identity>
<identity impersonate=true
username=usuario
password=contrasea />

IIS pide la informacin de registro al usuario

Cuando se accede a una pgina con seguridad se muestra


automticamente la ventana de validacin del usuario y
contrasea.
Si es correcta la validacin se reenva automticamente a la
pgina solicitada

135

Programacin ASP.NET

Despus de autentificarse se puede acceder a la


informacin con el objeto User.Identity
User.Identity.Name
User.Identity.AuthenticationType
User.Identity.IsAuthenticated
Lblnombre.text=User.Identity.Name
lblTipo.text=User.Identity.AuthenticationType
lblEsAutorizado= User.Identity.IsAuthenticated

136

Programacin ASP.NET

EL usuario pide una pgina


IIS pasa la peticin a ASP.NET ya que accede en modo
annimo
ASP.NET valida si existe un cookie de seguridad
Si no hay cookie, reenvia la peticin a la pgina definida
para validar las credenciales
Mediante cdigo chequea las credenciales y si la cumple
genera el cookie
Sino es correcta genera un mensaje de acceso denegado

137

Programacin ASP.NET

Configurar IIS para acceso annimo


Establecer la autentificacin en el web.config

Indicar el formulario que va a validar a los usuarios


.name
<system.web>
<authentication mode=Forms>
<forms name=.namesuffix loginUrl=login.aspx />
</authentication>
</system.web>

Establecer la autorizacin

Modificar el fichero web.config igual que en el caso de autorizacin de


windows

138

Programacin ASP.NET

Crear un formulario de Logon

Permite Introducir usuario y contrasea


Utilizar el objeto FormsAuthentication
En el botn de validacin utilizar el mtodo
RedirectFromLoginPage que reenva a los usuarios a la url
solicitada
Una vez validado podemos acceder a la informacin con
el objeto User.Identity

139

Você também pode gostar