Title: Jorge Oblitas
1El WebPart FrameworkParte 2
- Jorge Oblitas
- Consultor Independiente
- Microsoft Regional Director
- Peru Región Andina
2Conexiones entre Web Parts
- Los Web Parts se pueden comunicar
- El Provider publica la interface
- El Consumer usa la interface para obtener los
datos - El WebPartManager maneja las conexiones
- Recoge las interfaces de los providers
- Provee de interfaces a los consumers
- Las conexiones pueden ser estáticas o dinámicas
- ConnectionsZone provee la UI para eso
3Providers de la Conexión
- Implementa métodos que retornan interface
- ConnectionProvider
ConnectionProvider (Codigo Postal",
CodigoPostalProvider") public ICodigoPostal
GetCodigoPostalInterface () return this //
Se asume que el control implementa
ICodigoPostal // Implementación
ICodigPostal.GetCodigoPostal public string
GetCodigoPostal () return _zip
4Consumers de la conexión
- Implementa el método que recibe la interface
- Atributo ConnectionConsumer
ConnectionConsumer (Codigo Postal",
CodigoPostalConsumer") public void
GetICodigoPostalInterface (ICodigoPostal
provider) string zip provider.GetCodigoPos
tal () // Obtiene el código postal //
del provider
5Cómo trabajan las conexiones
El WebPartManager llama almétodo
ConnectionProvider
WebPartManager
1
El WebPartManager recibe la Interface del provider
2
2
3
1
El WebPartManager llama al método
ConnectionConsumer , Pasando la interfaceal
consumer
3
Provider
Consumer
4
El consumer llama al provider Usando la interface
provista
4
6Conexiones estáticas
- Se define en el elemento ltStaticConnectionsgt del
WebPartManager - No puede ser editado por los usuarios finales
- Instancias de ltaspConnectiongt
ltaspWebPartManager ID"WebPartManager1"
Runat"server"gt ltStaticConnectionsgt
ltaspConnection IDCodigoPostalConnection"
Runat"server" ProviderIDClima"
ProviderConnectionPointIDCodigoPostalProvider"
ConsumerIDNoticias" ConsumerConnectionPoint
IDCodigoPostalConsumer" /gt lt/StaticConnections
gt lt/aspWebPartManagergt
7El control ConnectionsZone
- Provee la Interface de usuario para conectar Web
Parts - Los usuarios, no lo desarrolladores, crean las
conexiones.
ltaspConnectionsZone ID"ConnectionsZone1"
Runat"server" /gt
8Conectando WebParts
9Personalización de Web Parts
- El servicio de personalización de Web Parts
- Automáticamente persiste las propiedades
relevantes del Web Part (layout, apariencia,
etc.) - También persiste las propiedades personalizadas
marcadas con PersonalizableAttribute - La clase PersonalizationAdministration
- Provee la API para el servicio de personalización
- -Basada en provides para un almacenamiento de
datos flexible.
10Personalización por usuario
- Personalizable persiste las propiedades por
usuario
string _stocks // ejemplo "MSFT,INTC,AMZN" Web
Browsable Personalizable public string
Stocks get return _stocks set
_stocks value
11Personalización compartida
- Personalizable (PersonalizationScope.-Shared)
persiste las propiedades de forma compartida
string _stocks // ejemplo "MSFT,INTC,AMZN" Web
Browsable Personalizable (PersonalizationScope.S
hared) public string Stocks get return
_stocks set _stocks value
12Providers de Personalización
- EL servicio de personalización de Web Parts está
basado en providers - Beta 1 viene con dos providers
- AccessPersonalizationProvider (Access)
- SqlPersonalizationProvider (SQL Server)
- Usemos providers personalizados para agregar
soporte para otros manejadores de datos.
Will be removed from beta 2
13Usando el SQL Server Provider
ltconfigurationgt ltsystem.webgt ltwebPartsgt
ltpersonalization defaultProvider"AspNetSqlPerso
nalizationProvider" /gt lt/webPartsgt
lt/system.webgt lt/configurationgt
14Web Parts Personalizados
- Cualquier control sirve como Web Part, pero
- Los controles que derivan de WebPart pueden
mejorar la infraestructura de los web parts. - Controles Title y otras propiedades relacionadas
con la UI - Controles AllowClose, AllowZoneChange,
AllowMinimize, y otras propiedades de conducta - Se aplica seguridad basada en roles (filtros de
autorización) - Agregar verbos personalizados, exportar Web Parts
y más
15Agregando Verbos personalizados
public class MiWebPart WebPart public
override WebPartVerbCollection Verbs
get EnsureChildControls ()
WebPartVerb verb new
WebPartVerb (new WebPartEventHandler
(OnClearResults)) verb.Text "Clear
Results" WebPartVerb verbs new
WebPartVerb verb return new
WebPartVerbCollection (base.Verbs, verbs)
void OnClearResults (object sender,
WebPartEventArgs args) ... ...
16Exportando Web Parts
- Propiedad WebPart.ExportMode
- WebPartExportMode.None (por defecto)
- WebPartExportMode.All
- WebPartExportMode.NonSensitiveData
- "All" y "NonSensitiveData" agregan el verbo
exportar habilitando a los web parts a ser
exportados. - Propiedades Personalizable only
- PersonalizableAttribute.IsSensitive identifica
las propiedades "sensitivas"
17Exportando todas las propiedades
public class MiWebPart WebPart public
MyWebPart () ExportMode
WebPartExportMode.All ...
18Exportando propiedades seleccionadas
public class MiWebPart WebPart public
MyWebPart () ExportMode
WebPartExportMode.NonSensitiveData //
Esta propiedad será exportada Personalizable
(PersonalizationScope.User, false) public
string CodigoPostal ... // Esta no
Personalizable (PersonalizationScope.User,
true) public string NumerodeSeguroSocial
... ...
IsSensitive
19Web Parts personalizados
20(No Transcript)