Title: Desarrollo 'NET sobre SharePoint
1Desarrollo .NET sobre SharePoint
Jordi Rambla Consultor Rambla informàtica -
Certia jordi_at_ramblainf.com
2Agenda
- Oportunidades de Desarrollo
- Desarrollo de Web Parts Sharepoint 2003
- El Modelo de Objetos de SharePoint 2003
- Los Web Services de SharePoint 2003
3Desarrollo de Web-Part Hola Mundo
- Creación de Web Part - Métodos Base de un Web
Part - HTML renderizado manualmente
4Desarrollo de Web Parts
- Plantillas de proyecto WebPart con VS.NET (MSDN
Downloads) - Derivar de clase base de SharePoint
- Implementar uno o mas interfaces de SharePoint
System.Web.dll
System.Web.UI.Control
Microsoft.SharePoint.dll
Microsoft.SharePoint.WebPartPages.WebPart
Tu assembly
MiNamespace.WebParts.MiWebPart
5Los ficheros de un Web Part
Tu Web-Part
Un fichero manifest (basado en XML) que
guarda datos a fusionar con el web.config
Assembly .NET encapsulando el código servidor
y renderización del HTML
Un fichero DWP (basado en XML) que guarda
algunas Propiedades y valores que se necesitan
para cargar el assembly .NET
Fichero CAB
STSADM.EXE
Utilidad de instalación
6Desarrollo Básico - Simple
- Definir Propiedades custom del WebPart
- Generar un montón de HTML en el método
RenderWebPart
7Desarrollo Básico Realista(Uso de WebControls
internos)
- Definir Propiedades custom del WebPart
- Sobreescribir CreateChildControls
- Instanciar web-controls y añadirlos a la
colección de controles - Implementar el gestionador(es) del evento OnLoad
8Persistencia de Propiedades
- Atributo WebPartStorage por propiedad
- Storage.Shared
- Storage.Personal
- Storage.None
- Los ficheros .DWP persisten valores de
propiedades para realizar importaciones/exportacio
nes
9Conexión de Web Parts
- Los Web Parts se pueden conectar si implementan
los interfaces para conexiones (estándar
SharePoint)
10Interfaces Soportados
- ICellProvider, ICellConsumer
- IRowProvider, IRowConsumer
- IListProvider, IListConsumer
- IFilterProvider, IFilterConsumer
- IParametersOutProvider, IParametersOutConsumer
- IParametersInProvider, IParametersInConsumer
11Web Parts conectadas
NorthWind Customer y Orders
12Seguridad en páginas de Web Parts
- Se permite a los usuarios modificar páginas
directamente - No se permite ejecutar cualquier código
- No se permite inline script
- Code behind si se permite
- No se permite usar cualquier control de servidor
- Lista de SafeControls en Web.Config
- Da a los administradores control sobre qué clases
pueden utilizarse - Code behind
- Controles de Servidor
- Web Parts
13Deployment (Inst. En Producción)
- Assemblies, Recursos y su localización
- Los Assemblies pueden instalarse en el GACo en
el directorio bin del WebSite - Los Recursos se instalan en /_wpresources o
/wpresources respectivamente - DWPs se instalan en el directorio /wpcatalog
14Deployment (cont.)
- GAC
- Por defecto Fully trusted
- Los Assemblies necesitan estar firmados con un
strongname. - Disponible para todos los servidores virtuales de
la máquina - Bin
- Por defecto Partial trust
- Disponible solo para un WebSite específico
15Deployment (cont.)
- WPPacks son ficheros cab que contienen
- Manifest
- Assemblies
- Recursos
- DWPs
- La creación de .cabs permite a los
administradores usar la utilidad stsadm.exe
para el deployment
16Deployment (cont.)
- Mas allá, crear un .msi
- Contiene el .cab
- Usar el objeto SPGlobalAdmin del namespace
Microsoft.SharePoint.Administration - AddWPPack
- RemoveWPPack
- EnumWPPacks
- Deployment de políticas CAS usando el .msi
17Deployment de Web Parts
Ejemplo de uso de stsadm.exe Políticas en .config
18Oportunidad desarrolloAcceso a SharePoint desde
aplicaciones .NET
- Dos opciones
- Modelo de objetos (assemblies) de SharePoint
- (p.e. acceder a SharePoint desde mi app.
ASP.NET) - XML Web Services de SharePoint
- (p.e. acceder a SharePoint desde mi app.
WinForms)
19- Acceso a SharePoint desde aplicaciones .NET -
Assemblies vs. Web Services
20Modelo de Objetos .NET de SharePoint
- Modelo de Objetos de codigo gestionado en el
servidor - Accessible desde ASP.NET o cualquier otro proceso
en el servidor - Implementado en C
- Expone practicamente todos los datos guardados en
SharePoint
21Que se puede hacer con este Modelo de Objetos?
- Ejemplos
- Añadir, editar, borrar, y devolver datos de las
Listas de SharePoint - Crear nuevas listas y establecer metadatos de
listas (e.j. los campos en una lista) - Establecer propiedades de web
- Trabajar con documentos en una Biblioteca de
documentos. - Realizar tareas administrativas como crear webs,
añadir usuarios, crear roles, etc.
22SPGlobalConfig
SPWebServer
SPVirtualServer
SPSite
SPWeb
SPList
SPListItem
23Resumen OM
- El modelo de objetos tiene tres objetos
principales de alto nivel - SPWeb (representa un site individual)
- SPSite (representa una colección de sites, que es
un conjunto de web sites) - SPGlobalAdmin (utilizado para administración de
configuración global) - Para poder realizar acciones en los datos de un
web, primero hay que obtener siempre un objeto
SPWeb.
24Web Services de SharePoint
- La capa de web services publica la capa de OM.
- Permite manipulación de Lists, Webs, Vistas, etc.
- La Funcionalidad es similar al OM, pero algunos
interfaces están optimizados para minimizar las
transacciones.
25Ejemplos
- GetListCollection
- GetListItems
- GetWebCollection
- UpdateList
- UpdateListItems
- GetWebInfo
- GetWebPart
- GetSmartPageDocument
- Otros
26Uso de XML Web Services
27Recursos
- SDK de Sharepoint Services
- Artículos de MSDN
- A Developer's Introduction to Web Parts
- Microsoft Windows SharePoint Services and Code
Access Security - Packaging and Deploying Web Parts
- Debugging Web Parts
- Libro
- Sharepoint Products technologies Resource kit
28Conclusiones desarrollo .NET sobre SharePoint 2003
- SharePoint 2003 tiene muchas oportunidades para
desarrolladores .NET permitiendo extender y crear
soluciones propias basadas en SharePoint 2003. - Web Parts Custom (Aplicaciones propias)
- Acceso a elementos internos de SharePoint