desarrollo web con asp net n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Desarrollo web con ASP.NET PowerPoint Presentation
Download Presentation
Desarrollo web con ASP.NET

Loading in 2 Seconds...

play fullscreen
1 / 79

Desarrollo web con ASP.NET - PowerPoint PPT Presentation


  • 84 Views
  • Uploaded on

Desarrollo web con ASP.NET. Agenda. Introducción a ASP.NET Modelo de ejecución Web Forms Trabajo con controles Estado en ASP.NET Aplicaciones web Seguridad Desarrollo web para dispositivos. Introducción a ASP.NET. Introducción a ASP.NET Historia del desarrollo web. HTML (1991)

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Desarrollo web con ASP.NET' - quana


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
agenda
Agenda
  • Introducción a ASP.NET
  • Modelo de ejecución
  • Web Forms
  • Trabajo con controles
  • Estado en ASP.NET
  • Aplicaciones web
  • Seguridad
  • Desarrollo web para dispositivos
introducci n a asp net historia del desarrollo web
Introducción a ASP.NETHistoria 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 6

Introducción a ASP.NETDiferencias con desarrollo Windows

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 windows1

ASP

Introducción a ASP.NETDiferencias con desarrollo Windows

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

Sin estado

Diseño

PeticiónRespuesta

ComposiciónHTML

Eventos

Propiedades

Paso de

parámetros

Estado

Lógica

Introducción a ASP.NETDiferencias con desarrollo Windows

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

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 qu es asp net
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
Introducción a ASP.NET¿Qué es .NET?

VB

C++

C#

JScript

Visual Studio.NET

Common Language Specification

ASP.NET: Web Services

and Web Forms

WindowsForms

ADO.NET, XML, Enterprise Services

Base Class Library

Common Language Runtime

modelo de ejecuci n arquitectura con iis 5

.ASPX,

.ASCX,

.ASMX

Modelo de ejecuciónArquitectura con IIS 5

INETINFO.exe

ASPNET_WP.exe

Aspnet_wp.exe

HTTPHandlers

ISAPI ASP.NET

ASPX

ASMX

CLR App Domain

CLR App Domain

HTTPModules

Auth

Sesión

Caché

Filtros ISAPI

CLR App Domain

TCP/IP

modelo de ejecuci n arquitectura con iis 6

.ASPX,

.ASCX,

.ASMX

Modelo de ejecuciónArquitectura con IIS 6

W3WP.exe

ISAPI ASP.NET

Aspnet_wp.exe

HTTPHandlers

HTTPModules

Filtros ISAPI

HTTP.SYS

modelo de ejecuci n compilaci n din mica

Test.aspx

¿test.aspx compilada?

Procesar

GET test.aspx

GET test.aspx

Leer

Generar

ISAPI

ASP.NET

Test.cs

Instanciar

Respuesta HTML

Clase compilada

Compilar

Respuesta HTML

Modelo de ejecuciónCompilación dinámica
modelo de ejecuci n el c digo est detr s
Modelo de ejecuciónEl 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

ASP

ASP .NET

<tags>

<tags>

código

código

test.aspx.cs

test.asp

test.aspx

modelo de ejecuci n code behind

Generar

Compilar

Modelo de ejecuciónCode-behind

Test.cs

Test.aspx

Test_aspx

Deriva de…

TestClass.cs

Compilar

TestClass

(Opcional)

web forms qu son
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
Web FormsControles 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
Web FormsPropiedades 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
Web FormsEstado
  • 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
Web FormsEventos 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
Trabajo con controlesControles 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
trabajo con controles controles html ii
Trabajo con controlesControles HTML (II)

System.Object

System.Web.UI.Control

HtmlControl

<img>

HtmlContainerControl

HtmlImage

HtmlInputControl

HtmlForm

<form>

HtmlInputFile

<input type=file>

HtmlGenericControl

<span>, <div>, …

HtmlSelect

HtmlInputHidden

<input type=hidden>

<select>

HtmlInputImage

<input type=image>

HtmlTable

<table>

HtmlInputRadioButton

<input type=radio>

HtmlTableCell

<td>, <th>

HtmlInputText

<input type=text>

HtmlTableRow

<tr>

HtmlInputButton

<input type=button>

HtmlTextArea

<textarea>

HtmlInputCheckBox

<input type=checkbox>

HtmlAnchor

<a>

<button>

HtmlButton

trabajo con controles webcontrols
Trabajo con controlesWebControls
  • Nuevo conjunto de controles con propiedades consistentes
    • Ej. Misma propiedad BackColor en table y span
  • Controles complejos
    • Ej. Calendar, DataGrid
  • Se adaptan al browser
trabajo con controles webcontrols ii
Trabajo con controlesWebControls (II)

System.Object

System.Web.UI.Control

Xml

Repeater

WebControl

ListControl

AdRotator

BaseDataList

RadioButtonList

DataGrid

CheckBoxList

DropDownList

DataList

Button

ListBox

Calendar

Panel

CheckBox

Table

RadioButton

Image

HyperLink

ImageButton

TextBox

Label

trabajo con controles webcontrols iii
Trabajo con controlesWebControls (III)

Calendar

ImageButton

Image

DataList

AdRotator

DataGrid

trabajo con controles controles internet explorer
Trabajo con controlesControles Internet Explorer
  • Controles extendidos complejos DHTML
    • Descargable de forma separada

Toolbar

TreeView

TabStrip

MultiPage

trabajo con controles controles de terceros
Trabajo con controlesControles de terceros
  • Cientos de nuevos controles en http://www.asp.net/ControlGallery
trabajo con controles desarrollo de controles
Trabajo con controlesDesarrollo 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
Trabajo con controlesEnlace 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
Trabajo con controlesPlantillas (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
Trabajo con controlesControles 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 en ASP.NETSesió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
Estado en ASP.NETSesió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
Estado en ASP.NETViewstate
  • 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 en ASP.NETEstado 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
Estado en ASP.NETCaché
  • 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
Estado en ASP.NETCaché (II)

<%@ OutputCache VaryByParam=“XXX“ VaryByHeader=“XXX”

VaryByCustom=“XXX” VaryByProperty=“XXX” Duration=“XX" %>

  • 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
    • Duración de caché
estado en asp net cach iii
Estado en ASP.NETCaché (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
      • Dependencias
aplicaciones web vida de una aplicaci n
Aplicaciones webVida 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 pipeline de una petici n
Aplicaciones webPipeline de una petición
  • Los módulos permiten procesamiento adicional por petición
    • Clases que implememtan IHttpModule
    • Configurables en .config
    • Por defecto Sesión, Caché, Autenticación, Autorización
  • Finalmente la petición es atendida por un handler
    • Clases que implementan IHttpHandler
    • Configurables en .config
    • Por defecto .aspx asociado al handler Page

HttpRuntime

HttpApplication

Module

Handler Factory

Handler

aplicaciones web despliegue de una aplicaci n
Aplicaciones webDespliegue 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
Aplicaciones webConfiguració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

Web.Config

Sub

Dir1

Sub

Dir2

aplicaciones web configuraci n ii
Aplicaciones webConfiguración (II)

debug="true" para añadir información de depuración en la compilación.

Habilita página de error con información detallada.

Controla políticas de autorización y autenticación específicas de ASP.NET.

Habilita la funcionalidad ASP.NET tracing en la aplicación.

Permite la configuración la gestión de estado ASP.NET.

seguridad autenticaci n
SeguridadAutenticació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
SeguridadAutenticación IIS

Método

Nivel de seguridad

Descripción

Anónimo

Ninguno

No se realiza autenticación

Básica

Baja (media con SSL)

  • Se envía usuario y clave en texto claro
  • Debe ser cifrado con SSL
  • Soportado por la mayoría de browsers

Digest

Media

  • Envía hash del password
  • Requiere IE 5+
  • Requiere Directorio Activo

Certificados digitales

Alta

  • El cliente presenta un certificado X509
  • Requiere despliegue del certificado
  • Soportado por la mayoría de browsers

Integrada

con Windows

Alta

  • Usa NTLM o Kerberos
  • Pensada para Intranets
  • No funciona a través de un firewall
seguridad autenticaci n iis1
SeguridadAutenticació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
SeguridadAutenticación ASP.NET
  • Basada en formulario
    • Página web de inicio de sesión
    • Cookie de autorización
  • Configuración
    • Configurar IIS como anónimo
    • Añadir sección en web.config

<system.web>

<authentication mode=“Forms”>

<forms loginUrl=“login.aspx” name=“mycookie”/>

</authentication>

</system.web>

seguridad autenticaci n asp net1
SeguridadAutenticación ASP.NET

IIS

ASP.NET

No existe cookie

Existe cookie

Usuario

Página protegida

Password

Submit

Cookie

seguridad autenticaci n asp net2
SeguridadAutenticación ASP.NET
  • Passport
    • Mecanismo de autenticación centralizado
    • Requiere SDK
    • Requiere clave cifrado (cuenta Passport)

El servidor descifra la cookie de passport y accede a la información del usuario

El cliente hace la petición

Passport.com redirige la petición al servidor inicial, estableciendo una cookie de autenticación

seguridad autorizaci n
SeguridadAutorización
  • Confirmación de acceso a recursos por parte de un usuario o rol
  • Cuatro posibilidades
    • De ficheros
    • De URL
    • Declarativa
    • Imperativa
seguridad autorizaci n de ficheros
SeguridadAutorización de ficheros
  • Establecer ACLs directamente en los ficheros
    • Utilizando Windows Explorer
  • Sólo válido para autenticación Windows
seguridad autorizaci n de url
SeguridadAutorizació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
SeguridadAutorizació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
SeguridadAutorizació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

}

}

}

}

desarrollo web para dispositivos mobile web controls
Desarrollo web para dispositivosMobile Web Controls
  • Juego de controles ASP.NET pensados para dispositivos móviles
    • Misma infraestructura ASP.NET
    • 100% integrado con Visual Studio
desarrollo web para dispositivos mobile web controls ii
Desarrollo web para dispositivosMobile Web Controls (II)
  • Presentación adaptable
    • WML, cHTML, XHTML, HTML, XML
  • Más de 200 navegadores soportados
slide78
Webcast teórico
  • Talleres en ciudades
  • Aplicación MSDN Video
    • Webcast práctica 13 Diciembre
  • www.DesarrollaConMSDN.com
    • Código de MSDN Video
    • Calendario
    • Tutoriales
    • Seminarios
    • Artículos
    • Foros
    • Descuento 40% libros

Sep

Oct

Nov

Dic

Ene

Feb

Mar

Abr

May

Jun

Desarrollo web