Jorge Oblitas - PowerPoint PPT Presentation

1 / 31
About This Presentation
Title:

Jorge Oblitas

Description:

Ha sido miembro de los programas. Microsoft Regional Director (desde el 2000) ... Expl cita %$ Resources:[prefijo archivo,]resource-key ... – PowerPoint PPT presentation

Number of Views:88
Avg rating:3.0/5.0
Slides: 32
Provided by: jorgeo
Category:
Tags: jorge | oblitas | prefijo

less

Transcript and Presenter's Notes

Title: Jorge Oblitas


1
Jorge 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
2
Webcast 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)

3
Extendiendo ASP.NET 2.0 a través del modelo
basado en proveedores (provider model)
  • Jorge Oblitas
  • Inteligencia e Innovación
  • Microsoft Regional Director

4
Ciclo de vida del page framework
  • Page.InitializeCulture Aquí podemos manejar
    UICulture y Culture para la localización
  • Page.OnPreInit, Page_PreInit, Aquí podemos
    configurar dinámicamente el Page.Theme o el
    Page.MasterPageFile
  • Control.LoadControlState, Control.SaveControlState
    manejan de modo explícito la funcionalidad del
    manejo de estado.
  • Nuevos eventos página OnInitComplete, OnPreLoad,
    OnLoadComplete, OnPreRenderComplete,
    OnSaveStateComplete etc.

5
Server Controls Runtime
  • Los User Controls, (.ASCX) se pueden ver en el
    desing view.
  • Carpeta App_code

6
Clases Control
  • Clase Control
  • Clase WebControl
  • CompositeControl
  • CompositeControlDesigner

7
Manejo del estado
  • Control-state
  • Indice actual de la página
  • Dato llave-valor (data key value)
  • Los controles personalizados deben registrarse
    para usar control-state
  • Idealmente en OnInit pero siempre antes de OnLoad
  • Los controles personalizados deben proveer de
    manera explícita el manejo del SAVE and LOAD

8
Recursos Web
  • Los Web resources permiten pegar los recursos en
    una assembly y pueden ser recogidos a través del
    web resources handler.

9
Call-backs
  • Permiten que un control o página realice un
    postback al servidor sin que la página en si se
    vuelva a postear completamente.

10
Los Application Service Providers
  • Membership
  • Role Manager
  • Session State
  • Profile
  • Site Navigation
  • Site Counters
  • Web Parts Personalization
  • Web Events

11
Expression Builders
  • Característica que permite agregar sintaxis
    declarativa a las propiedades de un control.
  • Los expression builders que vienen en ASP.NET 2.0
    son
  • Connection strings. lt connectionstrings
    MyConnStr gt
  • Application settings. lt appsettings MyAppValue
    gt
  • Resources. lt resources mykey gt.

12
Lo nuevo en Localización
  • Detección automática del lenguaje del browser
  • Expresiones de Localización declarativas
  • Generación de Recursos Locales

13
Formato sensible a la cultura
  • Configurar el lenguaje preferido en IE
  • Auto detección del lenguaje del browser
  • lt_at_ Page Culture"autoes-PE" gt
  • Sección globalization

14
Localización
  • Auto detección del lenguaje aceptado a través del
    encabezado del HTTP request enviado por el
    browser.
  • Expresión de recursos declarativa para unir los
    controles a las propiedades o a los recursos.
  • Acceso programático a los recursos y recursos
    fuertemente tipeados (strongly-typed resources)
  • Compilación automática y enlazado de los archivos
    RESX o RESOURCE en las runtime satellite
    assemblies
  • Soporte en tiempo de diseño para la creación de
    recursos
  • Modelo extensible

15
Resource expressions.
  • Archivos RESX o RESOURCE
  • Hay dos formas de resource expressions explícita
    e implícita
  • Explícitalt Resourcesprefijo
    archivo,resource-key gtImplícitaltaspLabel
    ID"Label1" runat"server" metaresourcekey"resou
    rce-key-prefix" /gt
  • Recursos Globales y Locales

16
Expresiones implícitas a recursos locales
ltaspLabel ID"LabelTitle" runat"server"
TextMis Perros" metaresourcekey"LabelResource1
"gt lt/aspLabelgt
17
Almacenando preferencias de lenguaje
  • Thread.CurrentThread.CurrentCulture y
    Thread.CurrentThread.CurrentUICulture van en el
    método InitializeCulture() porque la auto
    detección del lenguaje preferido del browser se
    da muy temprano en el ciclo de vida de la página.

18
Localización
19
El modelo basado en Proveedores En lugar de
interactuar directamente con los data stores, los
servicios clave en ASP.NET como el servicio
Session state o el deMembresía usan providers
para leer y escribir datos Esto hace el manejo
de estado infinitamente extensible porque si las
ASP.NET no incluyen un provider para el medio de
almacenamiento con el que desean trabajar, pueden
crear uno o comprarlo a un tercero
20
El Provider Model
Controls
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
21
Por qué Providers?
  • En ASP.NET 1.x el manejo del estado
  • Muy avanzado en persistencia
  • Limitaciones en cuanto a cómo y dónde se guardan
    los datos.
  • Manejo del estado en ASP.NET 2.0
  • Basado en providers
  • Máxima flexibilidad en cómo y dónde se guardan
    los datos

Brinda una interface uniforme entre el ASP.NET
run-time y los data stores físicos
22
Registro del provider
ltmembership defaultProvider"MisPerrosProvider"
userIsOnlineTimeWindow"15"gt ltprovidersgt ltadd
name"MisPerrosProvider" type"System.Web.Security
.SqlMembershipProvider, System.Web,
Version2.0.0.0, Cultureneutral,
PublicKeyTokenb03f5f7f11d50a3a"
connectionStringName"PerrosConnectionString"
enablePasswordRetrieval"false"
enablePasswordReset"true" requiresQuestionAndAnsw
er"false" applicationName"Webcast5"
requiresUniqueEmail"true" passwordFormat"Hashed"
/gt lt/providersgt lt/membershipgt ltanonymousIdentifica
tion enabled"true"/gt ltprofile defaultProvider"Mi
sPerrosProvider"gt ltprovidersgt ltadd
name"MisPerrosProvider" type"System.Web.Profile.
SqlProfileProvider" connectionStringName"PerrosCo
nnectionString"/gt lt/providersgt ltpropertiesgt ltadd
name"Raza" allowAnonymous"false"/gt ltadd
name"Tema" allowAnonymous"true"/gt ltadd
name"PreferredCulture" type"System.String"
allowAnonymous"true"/gt lt/propertiesgt lt/pro
filegt
23
La clase ProviderBase
  • Clase raíz para todas las clases provider
  • System.Configuration.Provider namespace
  • Clase base para derivados específicos a cada
    servicio

public class ProviderBase System.Object
public virtual string Name get public
virtual void Initialize (string name,
NameValueCollection config)
24
Derivados de ProviderBase
ProviderBase
ProtectedConfigurationProvider
RoleProvider
DPAPIProtectedConfigurationProvider
AccessRoleProvider
RSAProtectedConfigurationProvider
AuthorizationStoreRoleProvider
SettingsProvider
AspNetSqlRoleProvider
LocalFileSettingsProvider
WindowsTokenRoleProvider
ProfileProvider
MembershipProvider
AccessProfileProvider
AccessMembershipProvider
SqlProfileProvider
SqlMembershipProvider
25
Derivados de ProviderBase, Cont.
ProviderBase
SiteCountersProvider
WebEventProvider
AccessSiteCountersProvider
EventLogWebEventProvider
SqlSiteCountersProvider
MailWebEventProvider
SiteMapProvider
SimpleMailWebEventProvider
StaticSiteMapProvider
TemplatedMailWebEventProvider
XmlSiteMapProvider
SqlWebEventProvider
PersonalizationProvider
TraceWebEventProvider
AccessPersonalizationProvider
WmiWebEventProvider
SqlPersonalizationProvider
SessionStateStoreProviderBase
26
La clase MembershipProvider
public class MembershipProvider ProviderBase
// Public properties public abstract
string ApplicationName get set public
abstract bool EnablePasswordReset get
public abstract bool EnablePasswordRetrieval
get public abstract bool
RequiresQuestionAndAnswer get // Public
methods public override void Initialize
(string name, NameValueCollection config)
public abstract bool ValidateUser (string name,
string password) public abstract bool
ChangePassword (...) public abstract
MembershipUser CreateUser (...) public
abstract bool DeleteUser (string name, bool
deleteAllRelatedData) public abstract string
GetPassword (string name, string answer)
public abstract MembershipUser GetUser (string
name, bool userIsOnline) public abstract
string ResetPassword (string name, string
answer) public abstract void UpdateUser
(MembershipUser user) ...
27
Escribiendo un provider personalizado
  • Elegir la clase base apropiada
  • ProviderBase-derivative para un servicio
    existente
  • ProviderBase para un nuevo servicio
  • Derivar de la clase base
  • Implementar los miembros de la clase abstracta
  • Override los virtual class members conforme se
    requiera
  • Optionalmente agregar miembros específicos
  • El código debe ser thread-safe!

28
(No Transcript)
29
Enlaces
  • ICUADRADO http//www.icuadrado.com
  • Evento Latinoamericano de VSTShttp//www.icuadra
    do.com/chrismenegay.htm
  • Webcasts

30
Preguntas
31
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com