2. Agenda Infraestructura de los Web Part en Windows® SharePoint® Services 3.0 Pasos para crear un WebPart Simple Instalación de un Web Part Seguridad en Web Parts Exponiendo propiedades de un Web Part Web Parts conectables User Controls en Web Parts
3. Recursos Visual Studio Extensions for Windows SharePoint Services, v1.2 (http://www.microsoft.com/downloads/details.aspx?FamilyID=7bf65b28-06e2-4e87-9bad-086e32185e68&displaylang=en) WSS 3.0 SP1 Developer Evaluation Image (http://www.microsoft.com/downloads/details.aspx?FamilyID=1beeac6f-2ea1-4769-9948-74a74bd604fa&DisplayLang=en) Application Development Exams 70-541 TS: WSS 3.0 (http://www.microsoft.com/learning/exams/70-541.mspx)70-542 TS: MOSS 2007 (http://www.microsoft.com/learning/exams/70-542.mspx)
4. ¿Que son los Web Parts? Bloques de códigomodularesque son usadostipicamenteparacrearportales Dan soportepara la personalización Windows SharePoint Services 3.0 (WSS 3.0) incluyevarios Web Parts y Microsoft® Office SharePoint® Server 2007 (MOSS 2007) muchos mas!
6. Tipos de Web Parts para WSS 3.0 ASP.NET Web Parts Web parts queheredan de ASP.NET WebPart Importadosdesdearchivos.webpart Es el tiporecomendadoparadesarrollosnuevos en SharePoint Windows SharePoint Services v2-style Web parts Web parts queheredan de Windows SharePoint ServicesWebPart Importadosdesdearchivos .dwp Soportadosúnicamente con fines de compatibilidad con SharePoint 2.0
7. SPWebPartManager SPWebPartZone (Left) SPWebPartZone (Right) Editor Zone Web Part 1 Web Part 3 Editor Part 1 Web Part 2 Web Part 4 Editor Part 2 Catalog Zone Web Part 5 Catalog Part 1 Catalog Part 2 Estructura de una WebPartPage Una Web Part Page en Windows SharePoint Serviceses: Una sola instancia de la claseSPWebPartManager Una o másSPWebPartZones El Editor Zones y el Catalog Zones son proporcionadosporWindows SharePoint Services pages
8. Los Web Parts en SharePoint Existe una Web Part Gallery que contiene el listado de los Web Parts .DWP or .WEBPART son agregados como elementos Windows SharePoint Services puede descubrir nuevos elementos desde el web.config Mantienen su metadata .dwp .webpart Web Part Gallery
9. Entorno de desarrollo Microsoft® Visual Studio® 2008 extended with Visual Studio Extensions for Windows SharePoint Services 3.0 (1.2) Existen varias herramientas en CodePlex
10. Web Part Project Proyecto del tipo Class library Heredan de la clase System.Web.UI.WebControls.WebParts.WebPart using System; using System.Web.UI; using System.Web.UI.WebControls.WebParts; namespaceMisWebParts{ publicclassHolaMundoWebPart: WebPart { protectedoverridevoidCreateChildControls() { Controls.Add(new LiteralControl(“Hola Mundo")); } } }
11. Instalando un Web Part Assembly en Archivo BIN en Microsoft® InternetInformation Services (IIS) Web Application Global Assembly Cache Registrar el Web Part como Safe Control en el web.config Poner el Web Part en el site collection Manualmente Web Part Feature SharePoint Solutionautomatiza el proceso
12. Registrar como Safe Control En el web.config de cada IIS Web Application (en cada Front-Web Server) <!– web.config in root directory of hosting IIS Web Application --> <configuration> <SharePoint> <SafeControls> <SafeControlAssembly="AcmeWebParts" Namespace="AcmeWebParts" TypeName="*" Safe="True"/> </SafeControls> </SharePoint> </configuration>
13. Seguridad en los Web Part Los Web Parts cargadosdesde in son restringidos en seguridad Las restricciones de seguridad son controladaspor el Code Access Security Se puedenescoger entre 3 diferentesniveles WSS_Minimum(default) WSS_Medium Full <!– web.config in root directory of hosting virtual server --> <configuration> </system.web> <!-- <trust level="WSS_Minimal" originUrl="" /> --> <trustlevel="Full"originUrl=""/> </system.web> </configuration>
14. SharePoint Solution Paquete (MiSolucion.WSP) que contiene todos los componentes más un script de instalación Web Part assembly Web Part Feature files (CAML + .webpart) Web Part resources Manifiesto que define que hacer con cada uno de los componentes del paquete Visual Studio Extensions for Windows SharePoint Services 3.0 genera todos estos archivos
15. Controles hijos La interfaz grafica es creada en runtime Sobreescribe el método CreateChildControls Crea e inicializa los controles ASP.Net Agregar controles al árbol de controles para que puedan participar en eventos PostBack y manejo de ViewState No existe una experiencia en modo diseño
17. Tecnicas de desarrollo para un Web Part Exponer propiedades Web Parts Conectados Cargar User Controls
18. Propiedadespersistidas Web Parts soporta la persistencia de propiedades Persiste la personalizaciónporaplicación o porusuario Las propiedadespueden ser modificadasutilizando el navegador using System; using System.Web.UI; using System.Web.UI.WebControls.WebParts; namespaceMMG{ protectedstring_nombreUsuario; [Personalizable(), WebBrowsable(true), WebDisplayName(“Nombre Usuario"), WebDescription(“Nombre de Usuario de la aplicación“)] publicstringNombreUsuario{ get{ return_nombreUsuario; } set{_nombreUsuario=value} } //... }
19. Exponiendo propiedades en EditorParts Tool Pane GetEditorParts EDITOR PART ApplyChanges WEB PART COMMONPROPS SyncChanges
21. Web Parts conectados Escenarios Master-detail, busqueda, filtrado etc.. Basado en proovedores y consumidores Windows SharePoint Services 2.0 Implementación de las interfaces (ICellProvider and ICellConsumer) ASP.NET 2.0 and Windows SharePoint Services 3.0 Tu creas tus propia interface
22. Provider Web Part public interface IInformacion { string Texto { get; set; } } Crea tu propia interface Implementa la interface Utiliza el atributo ConnectionProvider public class WebPartA : WebPart, IInformacion public string Texto { get { return texto.Text; } set { texto.Text = value; } } [ConnectionProvider("InformacionBasica")] public IInformacionEnviarInformacion() { return this; }
23. Consumer Web Part Utiliza el atributo ConnectionConsumer [ConnectionConsumer("Informacion_Recepcion")] public void RecibirInformacion(IInformacioninformacion) { EnsureChildControls(); label.Text = informacion.Texto; }
25. Qué pasa User Controls? No existesoportenativoparautilizararchivos .ASCX (user controls) Puedesusar ASCXs en páginas ExistencomponentesquepermitenutilizarcontrolesASCXs