1 / 20

El WebPart Framework Parte 2

El WebPart Framework Parte 2. Jorge Oblitas Consultor Independiente Microsoft Regional Director Peru – Región Andina. Conexiones entre Web Parts. Los Web Parts se pueden comunicar El Provider publica la interface El Consumer usa la interface para obtener los datos

maik
Download Presentation

El WebPart Framework Parte 2

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. El WebPart FrameworkParte 2 Jorge Oblitas Consultor Independiente Microsoft Regional Director Peru – Región Andina

  2. Conexiones 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

  3. Providers 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; }

  4. Consumers 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.GetCodigoPostal (); // Obtiene el código postal // del provider }

  5. Cómo trabajan las conexiones El WebPartManager llama almétodo [ConnectionProvider] WebPartManager 1 El WebPartManager recibe la Interface del provider 2 1 2 3 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

  6. Conexiones estáticas • Se define en el elemento <StaticConnections> del WebPartManager • No puede ser editado por los usuarios finales • Instancias de <asp:Connection> <asp:WebPartManager ID="WebPartManager1" Runat="server"> <StaticConnections> <asp:Connection ID=“CodigoPostalConnection" Runat="server" ProviderID=“Clima" ProviderConnectionPointID=“CodigoPostalProvider" ConsumerID=“Noticias" ConsumerConnectionPointID=“CodigoPostalConsumer" /> </StaticConnections> </asp:WebPartManager>

  7. El control ConnectionsZone • Provee la Interface de usuario para conectar Web Parts • Los usuarios, no lo desarrolladores, crean las conexiones. <asp:ConnectionsZone ID="ConnectionsZone1" Runat="server" />

  8. Conectando WebParts

  9. Personalizació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.

  10. Personalización por usuario • [Personalizable] persiste las propiedades por usuario string _stocks; // ejemplo: "MSFT,INTC,AMZN" [WebBrowsable] [Personalizable] public string Stocks { get { return _stocks; } set { _stocks = value; } }

  11. Personalización compartida • [Personalizable (PersonalizationScope.-Shared)] persiste las propiedades de forma compartida string _stocks; // ejemplo: "MSFT,INTC,AMZN" [WebBrowsable] [Personalizable (PersonalizationScope.Shared)] public string Stocks { get { return _stocks; } set { _stocks = value; } }

  12. Providers 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

  13. Usando el SQL Server Provider <configuration> <system.web> <webParts> <personalization defaultProvider="AspNetSqlPersonalizationProvider" /> </webParts> </system.web> </configuration>

  14. Web 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

  15. Agregando 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) { ... } ... }

  16. Exportando 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"

  17. Exportando todas las propiedades public class MiWebPart : WebPart { public MyWebPart () { ExportMode = WebPartExportMode.All; } ... }

  18. Exportando 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

  19. Web Parts personalizados

More Related