SlideShare una empresa de Scribd logo
1 de 48
Plataformas de
Desarrollo 2
Tema: 1 Visual Studio .NET
Mg. Luis Fernando Aguas Bucheli
+593 984015184
@Aguaszoft
Laguas@uisrael.edu.ec
Si das pescado a un hombre hambriento lo nutres
durante una jornada.
Si le enseñas a pescar, le nutrirás toda su vida
(Lao Tsé).
Objetivo
• Construir aplicaciones de
software Web con acceso
a datos y que resuelva
problemas basados en
casos reales utilizando
Visual Studio
● 1.2 Web Forms
Contenido
Objetivos de Desarrollo Sostenible
4.7 De aquí a 2030, asegurar que todos los alumnos adquieran
los conocimientos teóricos y prácticos necesarios para
promover el desarrollo sostenible, entre otras cosas mediante la
educación para el desarrollo sostenible y los estilos de vida
sostenibles, los derechos humanos, la igualdad de género, la
promoción de una cultura de paz y no violencia, la ciudadanía
mundial y la valoración de la diversidad cultural y la
contribución de la cultura al desarrollo sostenible
1.2 Web Forms
Introducción a ASP.NET
Historia del desarrollo web
● HTML (1991)
○ Páginas estáticas orientadas al contenido
● CGI (1993)
○ Ejecutables que generan HTML dinámicamente
○ Versión mejorada: ISAPI
● ASP (1996), PHP (1997), JSP (1999)
○ Páginas HTML que incluyen código script dinámico
Introducción a ASP.NET
Diferencias con desarrollo Windows
VB
Private Sub Command1_Click()
If List1.SelCount > 0 Then
Label1.Caption = "Hola, " & List1.Text
Else
Label1.Caption = ""
End If
End Sub
Introducción a ASP.NET
Diferencias con desarrollo Windows
ASP
<html>
<%@ Language=VBScript %>
<%
nombres = array("Antonio",
"Jose", "Alberto",
"Luis", "Benito")
%>
<body>
<p>Seleccione su nombre:</p>
<form method="POST" action="HolaMundo.asp">
<p><select name="nombre" size="5">
<% for i = 0 to UBound(nombres) %>
<option
<% if Request.Form("nombre") = nombres(i) then %>
selected <% end if %> >
<%=nombres(i) %></option>
<% next %>
</select><br><br>
<input type="submit" value="Di hola"></p>
</form>
<% if Request.Form("nombre") <> "" then %>
<p>Hola, <%=Request.Form("nombre") %></p>
<% end if %>
</body>
</html>
<html>
<%@ Language=VBScript %>
<%
nombres = array("Antonio",
"Jose", "Alberto",
"Luis", "Benito")
%>
<body>
<p>Seleccione su nombre:</p>
<form method="POST" action="HolaMundo.asp">
<p><select name="nombre" size="5">
<% for i = 0 to UBound(nombres) %>
<option
<% if Request.Form("nombre") = nombres(i) then %>
selected <% end if %> >
<%=nombres(i) %></option>
<% next %>
</select><br><br>
<input type="submit" value="Di hola"></p>
</form>
<% if Request.Form("nombre") <> "" then %>
<p>Hola, <%=Request.Form("nombre") %></p>
<% end if %>
</body>
</html>
Introducción a ASP.NET
Diferencias con desarrollo Windows
Private Sub Command1_Click()
If List1.SelCount > 0 Then
Label1.Caption = "Hola, " & List1.Text
Else
Label1.Caption = ""
End If
End Sub
Diseño
Lógica
Eventos
Propiedades
Sin estado
Estado
Composición
HTML
Paso de
parámetros
Petición
Respuesta
Introducción a ASP.NET
¿Qué es ASP.NET?
● ASP.NET permite generar aplicaciones web con el
paradigma de Windows
○ Diseño + lógica
○ Componentes gráficos
○ Eventos
○ Propiedades
○ Estado
● Construido sobre .NET
Introducción a ASP.NET
¿Qué es .NET?
Base Class Library
Common Language Specification
Common Language Runtime
ADO.NET, XML, Enterprise Services
VB C++ C#
Visual
Studio.NET
ASP.NET: Web Services
and Web Forms
JScript …
Windows
Forms
Modelo de ejecución
Arquitectura con IIS
TCP/IP
INETINFO.exe
ISAPI ASP.NET Aspnet_wp.exe
CLR App Domain
CLR App Domain
CLR App Domain
Filtros ISAPI
.ASPX,
.ASCX,
.ASMX
ASPNET_WP.exe
HTTPHandlers
HTTPModules
ASPX ASMX
Auth Sesión Caché
Modelo de ejecución
Arquitectura con IIS
HTTP.SYS
W3WP.exe
ISAPI ASP.NET
Filtros ISAPI
.ASPX,
.ASCX,
.ASMX
Aspnet_
wp.exe
HTTPHandlers
HTTPModules
Modelo de ejecución
Compilación dinámica
ISAPI
ASP.NET
GET test.aspx
GET test.aspx
Procesar
¿test.aspx
compilada?
Leer
Test.aspx
Generar
Test.cs
Clase
compilada
Compilar
Respuesta HTML
Respuesta HTML
Instanciar
Modelo de ejecución
El código está detrás
● Separación en dos ficheros físicos
○ Código por detrás de la página (“code-behind”)
○ Código en cualquier lenguaje .NET soportado
<tags>
test.asp
código
<tags>
test.aspx
código
test.aspx.cs
ASP ASP .NET
Modelo de ejecución
Code-behind
Generar
Test.aspx Test.cs Test_aspx
TestClass.cs TestClass
Compilar
Compilar
(Opcional)
Deriva
de…
Web Forms
¿Qué son?
● Formularios semejantes a Windows pero en Web
○ Separación lógica – diseño
○ Componentes gráficos
○ Estado
○ Eventos
○ Propiedades
Web Forms
Controles de servidor
● Componentes que encapsulan la generación de HTML
○ Semejantes a los controles de Windows
● Pleno soporte desde Visual Studio
○ Paleta de componentes
○ Layout
○ Diseñadores de propiedades
○ Asistentes
Web Forms
Propiedades de controles
● Los controles tienen propiedades
○ Editables en modo diseño
● También accesibles desde código
○ A partir del llamado árbol de controles
Test.aspx
HtmlLiteral ListBox HtmlLiteral
<html>
<body>
<select>
…
</select>
</body>
</html>
Web Forms
Estado
● Los controles de servidor mantienen sus propiedades
● Dos mecanismos
○ Procesamiento automático de variables del post
○ Viewstate: variable de formulario oculta
■ Cuidado con el tamaño, deshabilitar si no se utiliza
Web Forms
Eventos de servidor
● Los controles pueden lanzar eventos
○ Ya sean HtmlControl o WebControl
○ Load, Click, TextChange, SelectedItemChange…
○ Posibilidad de procesamiento:
■ En servidor
■ En cliente
■ Encolados hasta siguiente postback
● Con todo esto cambia el paradigma de desarrollo
○ De petición-respuesta a event-driven
Trabajo con controles
Controles HTML
● Todos los elementos HTML tienen un control asociado
○ Sólo hay que marcarlo con runat=“server”
● Sólo tienen sentido si son dinámicos o queremos responder
a un evento
○ En caso contrario utilizar literales
HtmlImage
Trabajo con controles
Controles HTML (II)
HtmlInputControl
System.Object
System.Web.UI.Control
HtmlInputFile
HtmlInputHidden
HtmlInputImage
HtmlInputRadioButton
HtmlInputText
HtmlInputButton
HtmlInputCheckBox
HtmlContainerControl
HtmlControl
HtmlForm
HtmlGenericControl
HtmlSelect
HtmlTable
HtmlTableCell
HtmlTableRow
HtmlTextArea
HtmlAnchor
HtmlButton
<img>
<input type=file>
<input
type=hidden>
<input
type=image>
<input
type=radio>
<input type=text>
<input type=button>
<input
type=checkbox>
<form>
<span>, <div>,
…
<select>
<table>
<td>, <th>
<tr>
<textarea>
<a>
<button>
Trabajo con controles
WebControls
● Nuevo conjunto de controles con propiedades consistentes
○ Ej. Misma propiedad BackColor en table y span
● Controles complejos
○ Ej. Calendar, DataGrid
● Se adaptan al browser
AdRotator
Trabajo con controles
WebControls (II)
BaseDataList
System.Object
DataGrid
DataList
ListControl
RadioButtonList
CheckBoxList
DropDownList
ListBox
Panel
Table
Repeater Xml
System.Web.UI.Control
WebControl
Button
Calendar
HyperLink
TextBox
RadioButton
CheckBox
Label
ImageButton
Image
Trabajo con controles
WebControls (III) Calendar
ImageButton
Image
AdRotator DataGrid
DataList
Trabajo con controles
Controles Internet Explorer
● Controles extendidos complejos DHTML
○ Descargable de forma separada
Toolbar
TreeView
TabStrip
MultiPage
Trabajo con controles
Desarrollo de controles
● WebControls
○ Derivar de System.Web.UI.Control
○ Añadir propiedades, eventos, métodos
○ Sobrescribir Render()
○ Diseñadores, adaptación, Intellisense…
● Controles de usuario
○ Forma sencilla de crear controles
○ Composición de controles reutilizables
○ Lógica encapsulada en el control
Trabajo con controles
Enlace a datos
● Todo es enlazable
● Múltiples mecanismos
○ En línea con <%# Expresión %>
○ Utilizando propiedad DataSource del control
○ Utilizando colección DataBindings del control
● Para efectuar el enlace llamar a DataBind()
Trabajo con controles
Plantillas (templates)
● Los controles pueden ser personalizados con sus
propiedades o usando hojas CSS
○ Colores, bordes, letra, etc.
○ Semejante a Windows 9x / NT / 2000
● Las plantillas permiten definir layouts
○ Modificación de porciones del interfaz
○ Semejante a Windows XP / 2003
● Muchos controles exponen plantillas que son
personalizables
○ Ej. Cabeceras, celdas, elemento de lista.
Trabajo con controles
Controles de validación
● Validan la entrada de datos del usuario
● Reglas definidas de forma declarativa
○ Campo requerido
○ Comparaciones, rangos
○ Expresiones regulares
○ Personalizadas
● Se ejecutan transparentemente en cliente y servidor
○ Evita roundtrips
Estado en ASP.NET
Sesión
● Estado entre peticiones de un mismo cliente
● Dos tipos
○ Mediante cookie: generada automáticamente
■ ASP.NET_SessionID
○ Cookieless: almacenada en la URL
■ http://server/site/(uqwfp455t2qav155)/default.aspx
● Accesible mediante Page.Session
○ Diccionario clave / valor
Estado en ASP.NET
Sesión (II)
● El estado de la sesión puede almacenarse:
○ In-process, en el proceso de ASP.NET
○ Out-of-process, en un servidor de estado ASP.NET
○ Out-of-process, en una base de datos SQL Server
● In-process más óptimo
● Out-of-process fiabilidad y escalabilidad
○ Sobrevive a caídas
○ Estado compartido entre máquinas de una granja
Estado en ASP.NET
Viewstate
● El Viewstate puede utilizarse como mecanismo genérico de
estado
○ Estado entre una petición y la siguiente
● Características
○ Muy escalable
○ Uso de ancho de banda
● Útil para datos de pequeña longitud
ViewState["color"] = “rojo";
strColor =(string)ViewState["color"];
Estado en ASP.NET
Estado de aplicación
● Estado compartido entre todos los clientes
● Accesible mediante Page.Application
● ¡Cuidado con la concurrencia!
○ Application.Lock antes de actualizar
○ Application.Unlock después de actualizar
● ¡Cuidado con el rendimiento!
○ Los bloqueos pueden ralentizar
○ No se comparte entre distintos servidores
Estado en ASP.NET
Caché
● Caché de salida (output caching)
○ Permite reutilizar el resultado de una página entre peticiones
○ Enorme ganancia de rendimiento: páginas cacheadas tan rápidas como
las estáticas
● También para controles de usuario
○ Se cachean las porciones de página que no cambian
Estado en ASP.NET
Caché (II)
○ VaryByParam
■ Variar por el parámetro especificado
○ VaryByHeader
■ Variar por cabecera (ej. User-agent, lenguaje)
○ VaryByCustom
■ Rutina personalizada
○ VaryByProperty
■ Variar por propiedad del control
○ Duration
<%@ OutputCache VaryByParam=“XXX“ VaryByHeader=“XXX”
VaryByCustom=“XXX” VaryByProperty=“XXX” Duration=“XX" %>
Estado en ASP.NET
Caché (III)
● Caché de datos
○ Permite guardar objetos costosos de generar entre todos los clientes
■ Ej. Consulta a base de datos
○ Accesible desde Page.Cache
○ Los elementos son eliminados teniendo en cuenta:
■ La memoria disponible
■ Prioridades
■ Expiración absoluta o relativa
Aplicaciones web
Vida de una aplicación
● Cada directorio virtual de IIS es una aplicación
● Por defecto todas funcionan en el mismo proceso
○ Aisladas con Application Domains
● Eventos de aplicación
○ Localizados en global.asax
○ Application_Start, Application_End
○ Session_Start, Session_End
○ BeginRequest, EndRequest
Aplicaciones web
Despliegue de una aplicación
● Despliegue XCOPY
○ Es posible sobrescribir una aplicación en caliente
■ Incluyendo páginas y librerías
○ ASP.NET redirige las peticiones a la nueva aplicación y concluye las
actuales en la antigua
● Despliegue Windows Installer
○ Ficheros MSI generados desde Visual Studio
Aplicaciones web
Configuración
● 4 niveles para configurar
○ Servidor, root, web, subdir
● Ficheros XML web.config
● Extensible
○ Opciones de usuario en <appsettings>
○ Nuevas estructuras XML
● Modificable en caliente
○ Recarga automática de aplicación
Root
Dir
Sub
Dir1
Sub
Dir2
Web.Config
Seguridad
Autenticación
● Proceso de validación de credenciales
● Dos niveles de seguridad
○ IIS: configuración en
la administración IIS
○ ASP.NET: configuración
en web.config
Seguridad
Autenticación IIS
● Configuración
○ Configurar IIS en el modo elegido
○ Utilizar mode = “Windows” en web.config
<system.web>
<authentication mode=“Windows”/>
</system.web>
Opcionalmente utilizar impersonación
<identity impersonate=“true”>
Seguridad
Autenticación ASP.NET
IIS
ASP.NE
T
No existe cookie
Usuario
Password
Submit
Cookie
Página
protegida
Existe cookie
Seguridad
Autorización de URL
● Añadir autorización en web.config
<location path=“Webform1.aspx”>
<system.web>
<authorization>
<allow users=“luis, antonio”>
<allow roles=“amigos, administradores”>
<deny users='?'/>
</authorization>
</system.web>
</location>
Comodines
*: Todos los usuarios
?: Usuarios anónimos
Seguridad
Autorización declarativa
● Permite autorizar a nivel de clase y
método
○ Mediante atributos
[PrincipalPermission(SecurityAction.Demand, Authenticated=true)]
class Almacen {
[PrincipalPermission(SecurityAction.Demand, Role=“Personal")]
public int Consultar() { ... }
[PrincipalPermission(SecurityAction.Demand, Role="Admins")]
public void Modificar() { ... }
}
Seguridad
Autorización imperativa
● Comprobación programática
○ Para tener un grano aún más fino
○ Propiedad Page.User
class CuentaCorriente {
public int Transferir(decimal cantidad) {
if(cantidad > 1000) {
if(User.IsInRole(“administrador”)) {
// Transferir
}
}
}
}
Gracias
Responsabilidad con pensamiento positivo

Más contenido relacionado

La actualidad más candente (13)

HTML5
HTML5HTML5
HTML5
 
HTML
HTMLHTML
HTML
 
Guiajs2
Guiajs2Guiajs2
Guiajs2
 
La evolución del html
La evolución del htmlLa evolución del html
La evolución del html
 
Erick
ErickErick
Erick
 
Visual y sql
Visual y sqlVisual y sql
Visual y sql
 
TICs
TICsTICs
TICs
 
Guia Practica Maquetación HTML5, CSS
Guia Practica Maquetación HTML5, CSSGuia Practica Maquetación HTML5, CSS
Guia Practica Maquetación HTML5, CSS
 
ConexióN De Base De Datos
ConexióN De Base De DatosConexióN De Base De Datos
ConexióN De Base De Datos
 
Html
HtmlHtml
Html
 
Arquitectura web 2
Arquitectura web 2Arquitectura web 2
Arquitectura web 2
 
Dala
DalaDala
Dala
 
Html
HtmlHtml
Html
 

Similar a S2-PD2-Web Forms

EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptxEFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptxLuis Fernando Aguas Bucheli
 
MobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a AndroidMobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a AndroidAlberto Ruibal
 
4. Agregar Codigo A Los Formularios Web Form
4.  Agregar Codigo A Los Formularios Web Form4.  Agregar Codigo A Los Formularios Web Form
4. Agregar Codigo A Los Formularios Web Formguest3cf6ff
 
Building Ria Applications With Silverlight 2
Building Ria Applications With Silverlight 2Building Ria Applications With Silverlight 2
Building Ria Applications With Silverlight 2Tonymx
 
Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700Luis Fernando Aguas Bucheli
 
Introducción ASP .NET
Introducción ASP .NET Introducción ASP .NET
Introducción ASP .NET Universidad
 
Desarrollo y testeo modular de interfaces HTML5 / MVC - Congo framework
Desarrollo y testeo modular de interfaces HTML5 / MVC - Congo frameworkDesarrollo y testeo modular de interfaces HTML5 / MVC - Congo framework
Desarrollo y testeo modular de interfaces HTML5 / MVC - Congo frameworkSantiago Bustelo
 
Desarrollo Metro con Windows 8 UPM
Desarrollo Metro con Windows 8 UPMDesarrollo Metro con Windows 8 UPM
Desarrollo Metro con Windows 8 UPMRoberto Luis Bisbé
 
Sg07 Desarrollo De Gadgets Con Windows Vista
Sg07 Desarrollo De Gadgets Con Windows VistaSg07 Desarrollo De Gadgets Con Windows Vista
Sg07 Desarrollo De Gadgets Con Windows VistaChristian Strevel
 
Creando Aplicaciones Web en el 2015
 Creando Aplicaciones Web en el 2015 Creando Aplicaciones Web en el 2015
Creando Aplicaciones Web en el 2015Globant
 
UDA-Componentes RUP. Mantenimiento (v2.1.1 deprecado)
UDA-Componentes RUP. Mantenimiento  (v2.1.1 deprecado)UDA-Componentes RUP. Mantenimiento  (v2.1.1 deprecado)
UDA-Componentes RUP. Mantenimiento (v2.1.1 deprecado)Ander Martinez
 
JAVASCRIPT_2.ppt
JAVASCRIPT_2.pptJAVASCRIPT_2.ppt
JAVASCRIPT_2.pptaudis66
 

Similar a S2-PD2-Web Forms (20)

S2-PD2.pptx
S2-PD2.pptxS2-PD2.pptx
S2-PD2.pptx
 
S2-PD2.pptx
S2-PD2.pptxS2-PD2.pptx
S2-PD2.pptx
 
S2-PD2-1.2 Web Forms
S2-PD2-1.2 Web FormsS2-PD2-1.2 Web Forms
S2-PD2-1.2 Web Forms
 
HTML5 Nuevas Etiquetas Semanticas
HTML5 Nuevas Etiquetas SemanticasHTML5 Nuevas Etiquetas Semanticas
HTML5 Nuevas Etiquetas Semanticas
 
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptxEFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
 
MobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a AndroidMobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a Android
 
4. Agregar Codigo A Los Formularios Web Form
4.  Agregar Codigo A Los Formularios Web Form4.  Agregar Codigo A Los Formularios Web Form
4. Agregar Codigo A Los Formularios Web Form
 
Building Ria Applications With Silverlight 2
Building Ria Applications With Silverlight 2Building Ria Applications With Silverlight 2
Building Ria Applications With Silverlight 2
 
ABI-Box
ABI-BoxABI-Box
ABI-Box
 
Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700
 
Introducción ASP .NET
Introducción ASP .NET Introducción ASP .NET
Introducción ASP .NET
 
HTML5-Aplicaciones web
HTML5-Aplicaciones webHTML5-Aplicaciones web
HTML5-Aplicaciones web
 
Desarrollo y testeo modular de interfaces HTML5 / MVC - Congo framework
Desarrollo y testeo modular de interfaces HTML5 / MVC - Congo frameworkDesarrollo y testeo modular de interfaces HTML5 / MVC - Congo framework
Desarrollo y testeo modular de interfaces HTML5 / MVC - Congo framework
 
Desarrollo Metro con Windows 8 UPM
Desarrollo Metro con Windows 8 UPMDesarrollo Metro con Windows 8 UPM
Desarrollo Metro con Windows 8 UPM
 
Windows 10: Novedades en XAML
Windows 10: Novedades en XAMLWindows 10: Novedades en XAML
Windows 10: Novedades en XAML
 
Sg07 Desarrollo De Gadgets Con Windows Vista
Sg07 Desarrollo De Gadgets Con Windows VistaSg07 Desarrollo De Gadgets Con Windows Vista
Sg07 Desarrollo De Gadgets Con Windows Vista
 
Creando Aplicaciones Web en el 2015
 Creando Aplicaciones Web en el 2015 Creando Aplicaciones Web en el 2015
Creando Aplicaciones Web en el 2015
 
Html5+ccs3+js
Html5+ccs3+jsHtml5+ccs3+js
Html5+ccs3+js
 
UDA-Componentes RUP. Mantenimiento (v2.1.1 deprecado)
UDA-Componentes RUP. Mantenimiento  (v2.1.1 deprecado)UDA-Componentes RUP. Mantenimiento  (v2.1.1 deprecado)
UDA-Componentes RUP. Mantenimiento (v2.1.1 deprecado)
 
JAVASCRIPT_2.ppt
JAVASCRIPT_2.pptJAVASCRIPT_2.ppt
JAVASCRIPT_2.ppt
 

Más de Luis Fernando Aguas Bucheli (20)

EFC-ISW-Luis Fernando Aguas.pptx
EFC-ISW-Luis Fernando Aguas.pptxEFC-ISW-Luis Fernando Aguas.pptx
EFC-ISW-Luis Fernando Aguas.pptx
 
P-S2.pptx
P-S2.pptxP-S2.pptx
P-S2.pptx
 
EBTS-S1.pptx
EBTS-S1.pptxEBTS-S1.pptx
EBTS-S1.pptx
 
P-S3.pptx
P-S3.pptxP-S3.pptx
P-S3.pptx
 
EBTS-S4.pptx
EBTS-S4.pptxEBTS-S4.pptx
EBTS-S4.pptx
 
P-S4.pptx
P-S4.pptxP-S4.pptx
P-S4.pptx
 
P-S1.pptx
P-S1.pptxP-S1.pptx
P-S1.pptx
 
EBTS-S3.pptx
EBTS-S3.pptxEBTS-S3.pptx
EBTS-S3.pptx
 
EBTS-S2.pptx
EBTS-S2.pptxEBTS-S2.pptx
EBTS-S2.pptx
 
PDIDTI-S7.pptx
PDIDTI-S7.pptxPDIDTI-S7.pptx
PDIDTI-S7.pptx
 
PDIDTI-S4.pptx
PDIDTI-S4.pptxPDIDTI-S4.pptx
PDIDTI-S4.pptx
 
PDIDTI-S2.pptx
PDIDTI-S2.pptxPDIDTI-S2.pptx
PDIDTI-S2.pptx
 
PDIDTI-S1.pptx
PDIDTI-S1.pptxPDIDTI-S1.pptx
PDIDTI-S1.pptx
 
PDIDTI-S8.pptx
PDIDTI-S8.pptxPDIDTI-S8.pptx
PDIDTI-S8.pptx
 
PDIDTI-S6.pptx
PDIDTI-S6.pptxPDIDTI-S6.pptx
PDIDTI-S6.pptx
 
PDIDTI-S5.pptx
PDIDTI-S5.pptxPDIDTI-S5.pptx
PDIDTI-S5.pptx
 
PDIDTI-S3.pptx
PDIDTI-S3.pptxPDIDTI-S3.pptx
PDIDTI-S3.pptx
 
TIC-S4.pptx
TIC-S4.pptxTIC-S4.pptx
TIC-S4.pptx
 
TIC-S3.pptx
TIC-S3.pptxTIC-S3.pptx
TIC-S3.pptx
 
TIC-S2.pptx
TIC-S2.pptxTIC-S2.pptx
TIC-S2.pptx
 

Último

aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptCRISTOFERSERGIOCANAL
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfAntonioGonzalezIzqui
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxbingoscarlet
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxMarcelaArancibiaRojo
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfs7yl3dr4g0n01
 
osciloscopios Mediciones Electricas ingenieria.pdf
osciloscopios Mediciones Electricas ingenieria.pdfosciloscopios Mediciones Electricas ingenieria.pdf
osciloscopios Mediciones Electricas ingenieria.pdfIvanRetambay
 
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptxCARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptxvalenciaespinozadavi1
 
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOCAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOLUISDAVIDVIZARRETARA
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfMikkaelNicolae
 
Ingeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedicaIngeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedicaANACENIMENDEZ1
 
clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinosDayanaCarolinaAP
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfbcondort
 
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdfTEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdfXimenaFallaLecca1
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdfvictoralejandroayala2
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
TERMODINAMICA YUNUS SEPTIMA EDICION, ESPAÑOL
TERMODINAMICA YUNUS SEPTIMA EDICION, ESPAÑOLTERMODINAMICA YUNUS SEPTIMA EDICION, ESPAÑOL
TERMODINAMICA YUNUS SEPTIMA EDICION, ESPAÑOLdanilojaviersantiago
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023RonaldoPaucarMontes
 
Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024CESARHERNANPATRICIOP2
 
Mapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptxMapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptxMONICADELROCIOMUNZON1
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrialGibranDiaz7
 

Último (20)

aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptx
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docx
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
 
osciloscopios Mediciones Electricas ingenieria.pdf
osciloscopios Mediciones Electricas ingenieria.pdfosciloscopios Mediciones Electricas ingenieria.pdf
osciloscopios Mediciones Electricas ingenieria.pdf
 
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptxCARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
 
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOCAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
 
Ingeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedicaIngeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedica
 
clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinos
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
 
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdfTEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdf
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
TERMODINAMICA YUNUS SEPTIMA EDICION, ESPAÑOL
TERMODINAMICA YUNUS SEPTIMA EDICION, ESPAÑOLTERMODINAMICA YUNUS SEPTIMA EDICION, ESPAÑOL
TERMODINAMICA YUNUS SEPTIMA EDICION, ESPAÑOL
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
 
Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024
 
Mapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptxMapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptx
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrial
 

S2-PD2-Web Forms

  • 1. Plataformas de Desarrollo 2 Tema: 1 Visual Studio .NET Mg. Luis Fernando Aguas Bucheli +593 984015184 @Aguaszoft Laguas@uisrael.edu.ec
  • 2. Si das pescado a un hombre hambriento lo nutres durante una jornada. Si le enseñas a pescar, le nutrirás toda su vida (Lao Tsé).
  • 3. Objetivo • Construir aplicaciones de software Web con acceso a datos y que resuelva problemas basados en casos reales utilizando Visual Studio ● 1.2 Web Forms Contenido
  • 4. Objetivos de Desarrollo Sostenible 4.7 De aquí a 2030, asegurar que todos los alumnos adquieran los conocimientos teóricos y prácticos necesarios para promover el desarrollo sostenible, entre otras cosas mediante la educación para el desarrollo sostenible y los estilos de vida sostenibles, los derechos humanos, la igualdad de género, la promoción de una cultura de paz y no violencia, la ciudadanía mundial y la valoración de la diversidad cultural y la contribución de la cultura al desarrollo sostenible
  • 6. Introducción a ASP.NET Historia del desarrollo web ● HTML (1991) ○ Páginas estáticas orientadas al contenido ● CGI (1993) ○ Ejecutables que generan HTML dinámicamente ○ Versión mejorada: ISAPI ● ASP (1996), PHP (1997), JSP (1999) ○ Páginas HTML que incluyen código script dinámico
  • 7. Introducción a ASP.NET Diferencias con desarrollo Windows VB Private Sub Command1_Click() If List1.SelCount > 0 Then Label1.Caption = "Hola, " & List1.Text Else Label1.Caption = "" End If End Sub
  • 8. Introducción a ASP.NET Diferencias con desarrollo Windows ASP <html> <%@ Language=VBScript %> <% nombres = array("Antonio", "Jose", "Alberto", "Luis", "Benito") %> <body> <p>Seleccione su nombre:</p> <form method="POST" action="HolaMundo.asp"> <p><select name="nombre" size="5"> <% for i = 0 to UBound(nombres) %> <option <% if Request.Form("nombre") = nombres(i) then %> selected <% end if %> > <%=nombres(i) %></option> <% next %> </select><br><br> <input type="submit" value="Di hola"></p> </form> <% if Request.Form("nombre") <> "" then %> <p>Hola, <%=Request.Form("nombre") %></p> <% end if %> </body> </html>
  • 9. <html> <%@ Language=VBScript %> <% nombres = array("Antonio", "Jose", "Alberto", "Luis", "Benito") %> <body> <p>Seleccione su nombre:</p> <form method="POST" action="HolaMundo.asp"> <p><select name="nombre" size="5"> <% for i = 0 to UBound(nombres) %> <option <% if Request.Form("nombre") = nombres(i) then %> selected <% end if %> > <%=nombres(i) %></option> <% next %> </select><br><br> <input type="submit" value="Di hola"></p> </form> <% if Request.Form("nombre") <> "" then %> <p>Hola, <%=Request.Form("nombre") %></p> <% end if %> </body> </html> Introducción a ASP.NET Diferencias con desarrollo Windows Private Sub Command1_Click() If List1.SelCount > 0 Then Label1.Caption = "Hola, " & List1.Text Else Label1.Caption = "" End If End Sub Diseño Lógica Eventos Propiedades Sin estado Estado Composición HTML Paso de parámetros Petición Respuesta
  • 10. Introducción a ASP.NET ¿Qué es ASP.NET? ● ASP.NET permite generar aplicaciones web con el paradigma de Windows ○ Diseño + lógica ○ Componentes gráficos ○ Eventos ○ Propiedades ○ Estado ● Construido sobre .NET
  • 11. Introducción a ASP.NET ¿Qué es .NET? Base Class Library Common Language Specification Common Language Runtime ADO.NET, XML, Enterprise Services VB C++ C# Visual Studio.NET ASP.NET: Web Services and Web Forms JScript … Windows Forms
  • 12. Modelo de ejecución Arquitectura con IIS TCP/IP INETINFO.exe ISAPI ASP.NET Aspnet_wp.exe CLR App Domain CLR App Domain CLR App Domain Filtros ISAPI .ASPX, .ASCX, .ASMX ASPNET_WP.exe HTTPHandlers HTTPModules ASPX ASMX Auth Sesión Caché
  • 13. Modelo de ejecución Arquitectura con IIS HTTP.SYS W3WP.exe ISAPI ASP.NET Filtros ISAPI .ASPX, .ASCX, .ASMX Aspnet_ wp.exe HTTPHandlers HTTPModules
  • 14. Modelo de ejecución Compilación dinámica ISAPI ASP.NET GET test.aspx GET test.aspx Procesar ¿test.aspx compilada? Leer Test.aspx Generar Test.cs Clase compilada Compilar Respuesta HTML Respuesta HTML Instanciar
  • 15. Modelo de ejecución El código está detrás ● Separación en dos ficheros físicos ○ Código por detrás de la página (“code-behind”) ○ Código en cualquier lenguaje .NET soportado <tags> test.asp código <tags> test.aspx código test.aspx.cs ASP ASP .NET
  • 16. Modelo de ejecución Code-behind Generar Test.aspx Test.cs Test_aspx TestClass.cs TestClass Compilar Compilar (Opcional) Deriva de…
  • 17. Web Forms ¿Qué son? ● Formularios semejantes a Windows pero en Web ○ Separación lógica – diseño ○ Componentes gráficos ○ Estado ○ Eventos ○ Propiedades
  • 18. Web Forms Controles de servidor ● Componentes que encapsulan la generación de HTML ○ Semejantes a los controles de Windows ● Pleno soporte desde Visual Studio ○ Paleta de componentes ○ Layout ○ Diseñadores de propiedades ○ Asistentes
  • 19. Web Forms Propiedades de controles ● Los controles tienen propiedades ○ Editables en modo diseño ● También accesibles desde código ○ A partir del llamado árbol de controles Test.aspx HtmlLiteral ListBox HtmlLiteral <html> <body> <select> … </select> </body> </html>
  • 20. Web Forms Estado ● Los controles de servidor mantienen sus propiedades ● Dos mecanismos ○ Procesamiento automático de variables del post ○ Viewstate: variable de formulario oculta ■ Cuidado con el tamaño, deshabilitar si no se utiliza
  • 21. Web Forms Eventos de servidor ● Los controles pueden lanzar eventos ○ Ya sean HtmlControl o WebControl ○ Load, Click, TextChange, SelectedItemChange… ○ Posibilidad de procesamiento: ■ En servidor ■ En cliente ■ Encolados hasta siguiente postback ● Con todo esto cambia el paradigma de desarrollo ○ De petición-respuesta a event-driven
  • 22. Trabajo con controles Controles HTML ● Todos los elementos HTML tienen un control asociado ○ Sólo hay que marcarlo con runat=“server” ● Sólo tienen sentido si son dinámicos o queremos responder a un evento ○ En caso contrario utilizar literales
  • 23. HtmlImage Trabajo con controles Controles HTML (II) HtmlInputControl System.Object System.Web.UI.Control HtmlInputFile HtmlInputHidden HtmlInputImage HtmlInputRadioButton HtmlInputText HtmlInputButton HtmlInputCheckBox HtmlContainerControl HtmlControl HtmlForm HtmlGenericControl HtmlSelect HtmlTable HtmlTableCell HtmlTableRow HtmlTextArea HtmlAnchor HtmlButton <img> <input type=file> <input type=hidden> <input type=image> <input type=radio> <input type=text> <input type=button> <input type=checkbox> <form> <span>, <div>, … <select> <table> <td>, <th> <tr> <textarea> <a> <button>
  • 24. Trabajo con controles WebControls ● Nuevo conjunto de controles con propiedades consistentes ○ Ej. Misma propiedad BackColor en table y span ● Controles complejos ○ Ej. Calendar, DataGrid ● Se adaptan al browser
  • 25. AdRotator Trabajo con controles WebControls (II) BaseDataList System.Object DataGrid DataList ListControl RadioButtonList CheckBoxList DropDownList ListBox Panel Table Repeater Xml System.Web.UI.Control WebControl Button Calendar HyperLink TextBox RadioButton CheckBox Label ImageButton Image
  • 26. Trabajo con controles WebControls (III) Calendar ImageButton Image AdRotator DataGrid DataList
  • 27. Trabajo con controles Controles Internet Explorer ● Controles extendidos complejos DHTML ○ Descargable de forma separada Toolbar TreeView TabStrip MultiPage
  • 28. Trabajo con controles Desarrollo de controles ● WebControls ○ Derivar de System.Web.UI.Control ○ Añadir propiedades, eventos, métodos ○ Sobrescribir Render() ○ Diseñadores, adaptación, Intellisense… ● Controles de usuario ○ Forma sencilla de crear controles ○ Composición de controles reutilizables ○ Lógica encapsulada en el control
  • 29. Trabajo con controles Enlace a datos ● Todo es enlazable ● Múltiples mecanismos ○ En línea con <%# Expresión %> ○ Utilizando propiedad DataSource del control ○ Utilizando colección DataBindings del control ● Para efectuar el enlace llamar a DataBind()
  • 30. Trabajo con controles Plantillas (templates) ● Los controles pueden ser personalizados con sus propiedades o usando hojas CSS ○ Colores, bordes, letra, etc. ○ Semejante a Windows 9x / NT / 2000 ● Las plantillas permiten definir layouts ○ Modificación de porciones del interfaz ○ Semejante a Windows XP / 2003 ● Muchos controles exponen plantillas que son personalizables ○ Ej. Cabeceras, celdas, elemento de lista.
  • 31. Trabajo con controles Controles de validación ● Validan la entrada de datos del usuario ● Reglas definidas de forma declarativa ○ Campo requerido ○ Comparaciones, rangos ○ Expresiones regulares ○ Personalizadas ● Se ejecutan transparentemente en cliente y servidor ○ Evita roundtrips
  • 32. Estado en ASP.NET Sesión ● Estado entre peticiones de un mismo cliente ● Dos tipos ○ Mediante cookie: generada automáticamente ■ ASP.NET_SessionID ○ Cookieless: almacenada en la URL ■ http://server/site/(uqwfp455t2qav155)/default.aspx ● Accesible mediante Page.Session ○ Diccionario clave / valor
  • 33. Estado en ASP.NET Sesión (II) ● El estado de la sesión puede almacenarse: ○ In-process, en el proceso de ASP.NET ○ Out-of-process, en un servidor de estado ASP.NET ○ Out-of-process, en una base de datos SQL Server ● In-process más óptimo ● Out-of-process fiabilidad y escalabilidad ○ Sobrevive a caídas ○ Estado compartido entre máquinas de una granja
  • 34. Estado en ASP.NET Viewstate ● El Viewstate puede utilizarse como mecanismo genérico de estado ○ Estado entre una petición y la siguiente ● Características ○ Muy escalable ○ Uso de ancho de banda ● Útil para datos de pequeña longitud ViewState["color"] = “rojo"; strColor =(string)ViewState["color"];
  • 35. Estado en ASP.NET Estado de aplicación ● Estado compartido entre todos los clientes ● Accesible mediante Page.Application ● ¡Cuidado con la concurrencia! ○ Application.Lock antes de actualizar ○ Application.Unlock después de actualizar ● ¡Cuidado con el rendimiento! ○ Los bloqueos pueden ralentizar ○ No se comparte entre distintos servidores
  • 36. Estado en ASP.NET Caché ● Caché de salida (output caching) ○ Permite reutilizar el resultado de una página entre peticiones ○ Enorme ganancia de rendimiento: páginas cacheadas tan rápidas como las estáticas ● También para controles de usuario ○ Se cachean las porciones de página que no cambian
  • 37. Estado en ASP.NET Caché (II) ○ VaryByParam ■ Variar por el parámetro especificado ○ VaryByHeader ■ Variar por cabecera (ej. User-agent, lenguaje) ○ VaryByCustom ■ Rutina personalizada ○ VaryByProperty ■ Variar por propiedad del control ○ Duration <%@ OutputCache VaryByParam=“XXX“ VaryByHeader=“XXX” VaryByCustom=“XXX” VaryByProperty=“XXX” Duration=“XX" %>
  • 38. Estado en ASP.NET Caché (III) ● Caché de datos ○ Permite guardar objetos costosos de generar entre todos los clientes ■ Ej. Consulta a base de datos ○ Accesible desde Page.Cache ○ Los elementos son eliminados teniendo en cuenta: ■ La memoria disponible ■ Prioridades ■ Expiración absoluta o relativa
  • 39. Aplicaciones web Vida de una aplicación ● Cada directorio virtual de IIS es una aplicación ● Por defecto todas funcionan en el mismo proceso ○ Aisladas con Application Domains ● Eventos de aplicación ○ Localizados en global.asax ○ Application_Start, Application_End ○ Session_Start, Session_End ○ BeginRequest, EndRequest
  • 40. Aplicaciones web Despliegue de una aplicación ● Despliegue XCOPY ○ Es posible sobrescribir una aplicación en caliente ■ Incluyendo páginas y librerías ○ ASP.NET redirige las peticiones a la nueva aplicación y concluye las actuales en la antigua ● Despliegue Windows Installer ○ Ficheros MSI generados desde Visual Studio
  • 41. Aplicaciones web Configuración ● 4 niveles para configurar ○ Servidor, root, web, subdir ● Ficheros XML web.config ● Extensible ○ Opciones de usuario en <appsettings> ○ Nuevas estructuras XML ● Modificable en caliente ○ Recarga automática de aplicación Root Dir Sub Dir1 Sub Dir2 Web.Config
  • 42. Seguridad Autenticación ● Proceso de validación de credenciales ● Dos niveles de seguridad ○ IIS: configuración en la administración IIS ○ ASP.NET: configuración en web.config
  • 43. Seguridad Autenticación IIS ● Configuración ○ Configurar IIS en el modo elegido ○ Utilizar mode = “Windows” en web.config <system.web> <authentication mode=“Windows”/> </system.web> Opcionalmente utilizar impersonación <identity impersonate=“true”>
  • 44. Seguridad Autenticación ASP.NET IIS ASP.NE T No existe cookie Usuario Password Submit Cookie Página protegida Existe cookie
  • 45. Seguridad Autorización de URL ● Añadir autorización en web.config <location path=“Webform1.aspx”> <system.web> <authorization> <allow users=“luis, antonio”> <allow roles=“amigos, administradores”> <deny users='?'/> </authorization> </system.web> </location> Comodines *: Todos los usuarios ?: Usuarios anónimos
  • 46. Seguridad Autorización declarativa ● Permite autorizar a nivel de clase y método ○ Mediante atributos [PrincipalPermission(SecurityAction.Demand, Authenticated=true)] class Almacen { [PrincipalPermission(SecurityAction.Demand, Role=“Personal")] public int Consultar() { ... } [PrincipalPermission(SecurityAction.Demand, Role="Admins")] public void Modificar() { ... } }
  • 47. Seguridad Autorización imperativa ● Comprobación programática ○ Para tener un grano aún más fino ○ Propiedad Page.User class CuentaCorriente { public int Transferir(decimal cantidad) { if(cantidad > 1000) { if(User.IsInRole(“administrador”)) { // Transferir } } } }

Notas del editor

  1. 6
  2. 7
  3. 8
  4. 9
  5. 10
  6. 11
  7. 12
  8. 13
  9. 14
  10. 15
  11. 16
  12. 17
  13. 18
  14. 19
  15. 20
  16. 21
  17. 22
  18. 23
  19. 24
  20. 25
  21. 26
  22. 27
  23. 28
  24. 29
  25. 30
  26. 31
  27. 32
  28. 33
  29. 34
  30. 35
  31. 36
  32. 37
  33. 38
  34. 39
  35. 40
  36. 41
  37. 42
  38. 43
  39. 44
  40. 45
  41. 46
  42. 47