Title: Jorge Oblitas
1Jorge Oblitas
- Consultor en tecnología asociada a la gestión del
Conocimiento - Ha sido miembro de los programas
- Microsoft Regional Director (desde el 2000)
- Microsoft Partner Advisory Council (2002)
Consultor para los programas Panorama Box y
DCE Soluciones Intranet premiadas en Perú y
EE.UU. Creador del curso para la segunda estrella
DCE Bajista desde 1984 Aficionado a los Golden
Retrievers y Beagles
2Webcast Series
- Introducción a las ASP.NET para desarrolladores
ASP/PHP - Introducción a las ASP.NET 2.0 para
desarrolladores ASP.NET - Creación de aplicaciones Web con acceso a datos
usando ASP.NET2.0 - Creando aplicaciones seguras a través del uso de
membresía y manejo de roles con Visual Studio
2005 y ASP.NET 2.0 - Usando "Profiles" en ASP.NET 2.0 y localizando
aplicaciones. - Extendiendo ASP.NET 2.0 a través del modelo
basado en proveedores (provider model)
3Anteriores
- Diferencias entre el XML y el HTML
- Las MasterPages reemplazan a los controles de
usuario? - Si ya tengo una página sin masterpage... Cómo le
agrego el masterpage?
4XML, HTML
ltnegritagtJorgelt/negritagtltbrgt ltcursiva
colorrojogtjorgeo_at_icuadrado.comlt/cursivagt 8155555
Jorge jorgeo_at_icuadrado.com 8155555
ltContactogt ltNombregtJorgelt/Nombregt
ltEmailgtjorgeo_at_icuadrado.comlt/Emailgt
ltTelefonogt 8155555lt/Telefonogt lt/Contactogt
XML
5Introducción a las ASP.NET 2.0 para
desarrolladores ASP.NET 1.x
- Jorge Oblitas
- Inteligencia e Innovación
- Microsoft Regional Director
6Un vistazo a lo nuevo
Data Controls
Login Controls
Web Parts
Otros controlesNuevos
Controles
Master Pages
Temas y Skins
Mobility y Localización
Compilación
Page Framework
Membership
Manejo deRoles
Perfiles
Configuración
Servicios y APIs
Site Maps
Monitoreo dela salud
OtrosServicios
7Qué hay de nuevo en acceso a datos
- Data source controls
- 2-way data binding Declarativo
- Data controls
- GridView Como el Datagrid, sólo que es mejor
- DetailsView Acompañante del GridView
- SQL cache dependencies
- Relaciona ítems en el caché con entidades de la
base de datos - Expresiones data binding simplificadas
8Data Binding en ASP.NET 1.x
ltaspDataGrid ID"MyDataGrid" RunAt"server" /gt
... ltscript language"C" runat"server"gt void
Page_Load (Object sender, EventArgs e)
SqlConnection connection new SqlConnection
("serverlocalhostdatabasepubsintegrated
securitytrue") try
connection.Open () SqlCommand command
new SqlCommand ("select title_id,
titles, price from titles")
MyDataGrid.DataSource command.ExecuteReader
() MyDataGrid.DataBind ()
finally connection.Close ()
lt/scriptgt
9Data Binding en ASP.NET 2.0
ltaspSqlDataSource ID"Titles" RunAt"server"
ConnectionString"serverlocalhostdatabasepubsi
ntegrated securitytrue" SelectCommand"select
title_id, title, price from titles"
/gt ltaspDataGrid DataSourceID"Titles"
RunAt"server" /gt
10Data Binding declarativo
11Providers
- Nuevo modelo para el almacenamiento y
administración del estado. - Hace que el almacenamiento sea adaptable a la
media - Usado por muchos servicios ASP.NET
- Membership service
- Role Management service y más
- Los providers incluidos hacen que el
almacenamiento del estado en ASP.NET sea bastante
flexible - Providers personalizados lo hacen infinitamente
flexible
12El modelo de providers
Controles
Login
LoginStatus
LoginView
Otros Login Controls
Membership API
Membership
MembershipUser
Membership Providers
AccessMembershipProvider
otros Membership Providers
SqlMembershipProvider
Membership Data
Access
SQL Server
Otros Data Stores
13Configuración
- Herramientas administrativas
- ASP.NET MMC snap-in
- Web Site Administration Tool (Webadmin.axd)
- Configuration API
- Acceso de Lectura/escritura a los configuration
settings - Secciones de configuración personalizadas
simplificadas - Instrumentación
- Perf counters, health monitoring, y más
14Web Site Administration Tool
15Qué hay de nuevo en UIs
- Master pages
- Herencia Visual" para las páginas Web
- Se aplica de forma declarativa o programática
- Temas y skins
- Theme controls, páginas, y sitios enteros
- Se aplica declarativa y programáticamente
- Nuevos controles (más de 50 en total)
- Menúes, TreeViews, Wizards, y más
16La solución ASP.NET 1.x
User Control
UserControl
Contenido
17Herencia Visual
Contenido
Mi_Pagina.aspx
18Master Pages
19Qué hay de nuevo en Seguridad
- Membership service
- Servicio para administrar usuarios y
credenciales. - Basado en providers para un almacenamiento de
datos flexible. - Login controls
- Controls para el logueo, creación de nuevos
usuarios, recuperación de contraseñas y más. - Role Management service
- Combina la autenticación por formularios con
autorización basada en roles sin necesidad de
codificar.
20El Control Login
lthtmlgt ltbodygt ltform runat"server"gt
ltaspLogin RunAt"server" /gt lt/formgt
lt/bodygt lt/htmlgt
21Membership y Logins
22Perfiles
- Guarda datos por usuario de forma persistente.
- Acceso Strongly typed (a diferencia del session
state) - Búsqueda en demanda (a diferencia del session
state) - De vida larga (a diferencia del session state)
- Soprota usuarios autenticados y anónimos
- Accedidoa través de derivativos de
HttpProfileBase (HttpProfile) dinámicamente
compilados. - Basado en providers para un almacenamiento de
datos flexible.
23Definiendo un perfil
ltprofile enabled"true" defaultProvider"QuickStar
tProfileSqlProvider" inherits"UserDefinedProfileC
lass"gt ltprovidersgt ltadd nameAspNetSqlProvider
" type"System.Web.Profile.SqlProfileProvider,
System.Web, Version2.0.3600.0, Cultureneutral,
PublicKeyTokenb03f5f7f11d50a3a"
connectionStringNameLocalSqlServer"
applicationNameWCS2"/gt lt/providersgt
ltpropertiesgt ltadd nameNombre"/gt ltadd
nameAvatar" typeString"/gt ltgroup
nameDetallesUsuario"gt ltadd nameRazaPreferida"
typeString"/gt lt/groupgt lt/propertiesgt
lt/profilegt ltanonymousIdentification
enabled"true" cookieName".ASPXANONYMOUS"
cookieTimeout"43200" cookiePath"/"
cookieRequireSSL"false" cookieSlidingExpiration"
true" cookieProtection"All" cookieless"UseCookie
s"/gt
24Data persistente con perfiles
25Navegación en el Sitio Web
- Las UIs de navegación son tediosas de
implementar. - Especialmente si están basadas en script del lado
del cliente. - Nuevos controles simplifican la navegación en el
Sitio. - TreeView y Menu - Navigation UI
- SiteMapDataSource - XML site maps
- SiteMapPath controles migas de pan"
- API pública provee la base para los controles
- Basada en providers para tener flexibilidad
26Navegación basada en datos
27Qué hay de nuevo en Localización
- Manejo de Auto-culture
- Mapeo Declarativo de los Lenguajes aceptados para
las propiedades relevantes del thread - Manejo de recursos simplificado
- Mapeo declarativo de las propiedades de lso
controles a los recursos usando expresiones lt
gt - Carga de recursos programable fuertemente
tipeada (Strongly typed) - ltasplocalize runat"server"gt y más
28Qué hay de nuevo en compilación
- Autocompilar diferentes tipos de archivos
- Archivos CS, VB, RESX, y por el estilo
- Sólo hay que poner los archivos en los
directorios especiales - Extensible con custom build providers
- Nuevo modelo code-behind (code-behind 2.0)
- Arregla las fragilidades de la versión 1
- Descansa sobre el soporte a clases parciales en
los compiladores - Precompilación e implementación sin código fuente
29Compilación dinámica
vroot
CS
VB
App_Code
Los archivos se autocompilan en el primer acceso
WSDL
XSD
App_LocalResources
RESX
RESOURCE
30Compilación dinámica
31Expresiones
- Mecanismo declarativo para cargar recursos,
cadenas de conexión, y más
ASPX
ltaspSqlDataSource ID"Titles" RunAt"server"
ConnectionString"lt ConnectionStringsPubs gt"
SelectCommand"select title_id, title, price
from titles" /gt
Web.config
ltconfigurationgt ltconnectionStringsgt ltadd
name"Pubs" connectionString"serverlocalho
stdatabasepubs..." /gt lt/connectionStringsgt lt/
configurationgt
32Expression Builders
- Componentes que evaluan las expresiones
- La sección de configuración ltexpressionBuildersgt
mapea los prefijos a hacia los expression
builders
ltcompilation ... gt ltexpressionBuildersgt
ltadd expressionPrefix"Resources"
type"System.Web.Compilation.ResourceExpressionBui
lder" /gt ltadd expressionPrefix"ConnectionStri
ngs" type"System.Web.Compilation.Connection
StringsExpressionBuilder" /gt ltadd
expressionPrefix"AppSettings"
type"System.Web.Compilation.AppSettingsExpression
Builder" /gt lt/expressionBuildersgt lt/compilationgt
33Cross-Page Posting
- Las páginas pueden postear hacia otras páginas
- Propiedades relevantes
- control.PostBackUrl Identifica la página
objetivo del postback - Page.PreviousPage Retorna la referencia a la
pagina que originó el cross-page postback - PreviousPage.IsCrossPagePostBack Revela si ha
ocurrido o no un cross-page postback - La directiva _at_ PreviousPageType da acceso
fuertemente tipeado a la página previa.
34Haciendo Post Back a otra página
lthtmlgt ltbodygt ltform runat"server"gt
ltaspTextBox ID"Input" RunAt"server" /gt
ltaspButton Text"Test" PostBackUrl"PageTwo.aspx"
RunAt"server" /gt lt/formgt lt/bodygt lt/htmlgt
35Cross-Page Postbacks
36Callbacks desde el cliente
- "Lightweight" postbacks
- El Client-side callback manager transmite request
XML-HTTP asincrónicos al servidor - El servidor recibe y procesa el request pero no
vuelve a pintar la página - El callback manager recibe la respuesta y
notifica al cliente a través del callback
registrado - Requiere Internet Explorer 5.0 o superior
- Una gran manera de mejorar la respuesta de la
Interface de Usuario
37Cómo trabajan los Client Callbacks
Cliente
Servidor
1
2
Cliente
Callback Manager
Página
El Client inicia el callback llamando a la
función que retorna el GetCallback-EventReference
El Callback manager lanza el XML-HTTP asincrónico
al servidor
3
EL evento RaiseCall-backEvent method de la
página es llamado
5
4
El cliente recibe la notificacion de que el
llamado ha sido completadoy maneja el resultado
El Callback manager recibe la notificación de que
el llamdo ha sido completado
38Quien tiene el foco?
- en ASP.NET 1.x, el script cliente se necesita
para poner el foco en un control - En ASP.NET 2.0, usamos Page.SetFocus
ltaspTextBox ID"UserName" RunAt"server" /gt .
. . ltscript language"C" runat"server"gt void
Page_Load (Object sender, EventArgs e)
SetFocus ("UserName") lt/scriptgt
39Panel.DefaultButton
- Designa el botón a ser "clickeado" cuando se
presiona ENTER y el foco está en el panel - Es un Work-around para el hecho de que las
ASP.NET limitan las páginas a un solo
runat"server" en el FORM
40Web Parts
- Framework para la construcción de aplicaciones al
estilo portal - Al estilo SharePoint Portal Server
- System.Web.UI.WebControls.WebParts
- Interface de usuario Rica con mínimo código
- Editr la composición de la página usando
drag-and-drop - Editar la apariencia, la conducta y más
- Personalización facilísima
- Intercomunicación ("conexiones")
41Web Parts
42(No Transcript)
43Preguntas
44(No Transcript)