Title: Desarrollo 'NET sobre SharePoint 2003 WSS y SPS
1Desarrollo .NET sobre SharePoint 2003 (WSS y SPS)
CĂ©sar de la Torre Software Architect Renacimiento
ctorre_at_renacimiento.com
2Agenda
- IntroducciĂłn de la Arquitectura de Microsoft
SharePoint Portal Server 2003 - Oportunidades de Desarrollo
- Desarrollo de Web Parts Sharepoint 2003
- Desarrollo de gestiĂłn de eventos de las
Bibliotecas de Documentos - El Modelo de Objetos de SharePoint 2003
- Los Web Services de SharePoint 2003
- FUTURO Web Parts en Whidbey.NET
Que?
Por qué?
CĂłmo?
3Por qué SharePoint 2003?
- DistribuciĂłn y comparticiĂłn de informaciĂłn
- ColaboraciĂłn
- Espacios de trabajo de Documentos y reuniones
- GestiĂłn Documental
- Bibliotecas de Documentos (meta-data, versionado,
aprobaciĂłn de documentos, check-in/check-out) - PersonalizaciĂłn y NotificaciĂłn
- Encontrar informaciĂłn
4Windows Sharepoint Services 2003 vs. SharePoint
Portal Server 2003?
- Windows SharePoint Services 2003 (v2)
- Microsoft SharePoint Portal Server (v2)
Soluciones Custom
Office 2003System
SharePointPortal Server
Windows SharePoint Services
SQL Server 2000 (SP3)
.NET Framework 1.1
Windows Server 2003
5Arquitectura LĂłgica de SharePoint Portal Server
2003
vServer
App Web
IIS 6.0
vServer
ColecciĂłn de Sites SharePoint
Sub-Portal 1
Portal Principal
Sub-Portal 2
6Oportunidad desarrollo 1 Web Parts
- Puntos a ver
- Qué son los Web Parts?
- Pasos Básicos
- Cache
- La TĂ©cnica de los User Controls
7Qué son los Web Parts? (SPS2003)
- Perspectiva de Usuario
- Un Web Parts es un bloque de construcciĂłn (caja)
en una página de un Portal de SharePoint - Perspectiva de Gestores de Contenido
- Web Parts son contenedores de informaciĂłn que se
pueden añadir a las páginas al igual que las
Bibliotecas de Documentos y las Listas - Perspectiva de Desarrollo
- Los Web Parts son Web-Controls extendidos basados
en ASP.NET que implementan interfaces estandard
de SharePoint 2003. - Interesantes SOLAMENTE si vamos a reutilizarlo
8Trabajando con Web Parts
- GalerĂas de Web Part
- Web Part Page Gallery
- Virtual Server Gallery
- Online Gallery
- Se sueltan en páginas
- En Páginas ASP.NET divididas en zonas
- PersonalizaciĂłn
- Propiedades Comunes
- ToolPart
- ConexiĂłn entre Web Parts
- ImportaciĂłn y ExportaciĂłn de Web Parts
9Uso de Web-Parts
(1)
- Web Parts ejemplo
- Biblioteca de Documentos
- Enlaces
- Foros de DiscusiĂłn
- etc.
10Desarrollo 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
Renacimiento.WebParts.MiWebPart
11Los ficheros de un Web Part
Tu Web-Part
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
Un fichero manifest (basado en XML) que
guarda datos a fusionar con el web.config
Fichero CAB
STSADM.EXE
Utilidad de instalaciĂłn
12Desarrollo Básico - Simple
- Definir Propiedades custom del WebPart
- Generar un montón de HTML en el método
RenderWebPart
13Desarrollo de Web-Part Hola Mundo
(2)
- CreaciĂłn de Web Part - MĂ©todos Base de un Web
Part - HTML renderizado manualmente
14Desarrollo 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
15Persistencia de Propiedades
- Atributo WebPartStorage por propiedad
- Storage.Shared
- Storage.Personal
- Storage.None
- Los ficheros .DWP persisten valores de
propiedades para realizar importaciones/exportacio
nes
16Web-Part ejemplo Visor de Noticias RSS
(3.1)
- UtilizaciĂłn de Web-Controls dentro de WebPart
- Propiedades persistentes de WebParts
- - Debugging de WebParts
17Cache de Web Parts (1)
- Tenemos dos opciones tecnolĂłgicas para el CACHE
- Cache estandard de páginas ASP.NET
- Cache de Web-Parts (soporta cache por usuario)
18Cache de Web Parts (2)
- Los Administradores no los desarrolladores
establecen el tipo de cache en el web.config - ltSharePointgt
- ltWebPartCache StorageCacheObject"/gt
lt/SharePointgt - Tenemos 2 tipos de cache
- CacheObject (Cualquier objeto .NET)
- Database (El objecto tiene que ser serializable)
19Cache de Web Parts (3)
- Los valores de Cache se pueden guardar como
- Shared
- Personal
- MĂ©todos de la clase base WebPart
- PartCacheRead()
- PartCacheWrite()
- PartCacheInvalidate()
20Web-Part Visor de Noticias RSS
(3.2)
- CACHE de WebParts
21Trabajo con User Controls
- No hay un diseñador para las clases Web Part
- Truco Podemos utilizar User-Controls de
ASP.NET - Situar .ascx en Directorio de AplicaciĂłn Web
- Definir el Managed Path
- Dentro del Web Part, utilizar this.Page.LoadContr
ol(/tu path) - Instala el Assembly del Web User Control en el
GAC - Añade la referencia del assembly en el web.config
22Web Part con User Controls (web)
(4)
Ejemplo de WebPart utilizando un User-Control de
formulario complejo
23ConexiĂłn de Web Parts
- Los Web Parts se pueden conectar si implementan
los interfaces para conexiones (estandard
SharePoint)
24Interfaces Soportados
- ICellProvider, ICellConsumer
- IRowProvider, IRowConsumer
- IListProvider, IListConsumer
- IFilterProvider, IFilterConsumer
- IParametersOutProvider, IParametersOutConsumer
- IParametersInProvider, IParametersInConsumer
25Seguridad 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
- Dá a los administradores control sobre qué clases
pueden utilizarse - Code behind
- Controles de Servidor
- Web Parts
26Seguridad en páginas de Web Parts (cont.)
- GestiĂłn de Identidad para acceder a datos
externos - Impersonation true
- Delegation
- Kerberos si configurado por admin
- SSO en SharePoint Portal Server
27Deployment (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
28Deployment (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
29Deployment (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
30Deployment (cont.)
- Mas allá, crear un .msi
- Contiene el .cab
- Usar el objeto SPGlobalAdmin del namespace
Microsoft.SharePoint.Administration - AddWPPack
- RemoveWPPack
- EnumWPPacks
- Deployment de politicas CAS usando el .msi
31Deployment de Web Parts
(5)
Ejemplo de uso de stsadm.exe
32Oportunidad desarrollo 2 GestiĂłn de Eventos de
Bibliotecas de Documentos
- LibrerĂas de clases .NET
- Utilizando el Modelo de Objetos de SharePoint se
puede manipular programáticamente contenido de
Bibliotecas y Listas
33Pasos de Desarrollo
- Crear una LibrerĂa de clases .NET
- Añadir referencia a Microsoft.SharePoint.dll
- Implementar el interfaz IListEventSink
- Añadir tu código en el método OnEvent()
- Se llama a este método cuando ocurre algo en la
Biblioteca de Documentos - Firma tu Assembly
- Registralo en el GAC
- Habilita el soporte para Doc Lib Event Handlers
en tu servidor virtual - Especifica el Doc Lib Event Handler a la
Biblioteca de documentos o Formularios
34Libreria .NET de gestiĂłn de Eventos de LibrerĂa
SharePoint
(6)
35Oportunidad desarrollo 3 Acceso 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)
36Oportunidad desarrollo 3
- Acceso a SharePoint desde aplicaciones .NET -
Assemblies vs. Web Services
37Modelo 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
Windows SharePoint Services
38Que 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.
39SPGlobalConfig
SPWebServer
SPVirtualServer
SPSite
SPWeb
SPList
SPListItem
40Web-Part Acceso a Profiles de usuarios de
SharePoint
(7)
- Modelo de Objetos de SharePoint 2003
41Resumen 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.
42Web Services de WSS (Windows SharePoint Services)
- 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. - Office 2003 (e.j. Excel, DataSheet, Work,
Outlook, FrontPage, etc) utilizan dichos web
services para acceder a los datos de WSS.
43Ejemplos
- GetListCollection
- GetListItems
- GetWebCollection
- UpdateList
- UpdateListItems
- GetWebInfo
- GetWebPart
- GetSmartPageDocument
- Otros
44Uso de XML Web Services Acceso a Profiles de
usuarios de SharePoint
(8)
- XML Web Services de SharePoint 2003
45Ver contenido de SharePoint en un Pocket PC
46Single Sign-On
- Servicio de valor añadido en SharePoint 2003
- Proporciona una Ăşnica autenticaciĂłn para todas
las aplicaciones custom en un entorno Intranet.
B.D. SQL de Single Sing On (Es un Cache de
Credenciales)
ObtenciĂłn credenciales Cacheadas
Entramos en la Intranet
App. Custom 1
IE
1.
Login Automático Challege-Response
Login programat. App. 1
Cacheamos las credenciales
2.
b.
Login visual para App 1
a.
App. Custom n
47Demo de Single Sign-On
48FUTURO Web Parts en Whidbey.NET
49Qué tenemos hoy?
- Sin tener en cuenta a Whidbey.NET
- Los Web Parts tienen que ser Web-Controls custom
basados en ASP.NET - Las páginas para Web Parts tienen que estar
obligatoriamente alojadas en Sites de SharePoint - Es escalable, está soportado, y tenemos
disponible una infraestructura completa de
servicios de SharePoint - Las Zonas son estrictamente plantillas visuales
de contenedores
50Tools
Client Application Model
Web Service Application Model
Data Systems Application Model
Mobile PC Devices Application Model
Command Line
Compact Framework
System.Console
Win FS
Yukon
Mobile PC Optimized
Avalon
Windows Forms
ASP.NET / Indigo
NT Service
System.Windows
System.Windows.Forms
System.Data.SqlServer
System.Windows
System.Windows.Forms
System.Web
System.Storage
System.ServiceProcess
Data
Communication
Presentation
System.Discovery
System.Search
System.Collaboration
System.Data
System.Messaging
System.Windows
DataSet
SqlClient
RealTimeEndpoint
UI Element
Explorer
Media
Annotations
System.DirectoryServices
ActiveDirectory
TransientDataSession
Mapping
SqlTypes
Animation
Controls
Documents
System.Remoting
Monitoring
SignalingSession
ObjectSpaces
SqlXML
Controls
Dialogs
Text Element
System.Runtime.Remoting
Logging
Uddi
Media
ObjectSpace
Control
SideBar
Shapes
OdbcClient
Relevance
Activities
Query
Panel
Notification
Shape
OleDbClient
Navigation
Schema
System.Web.Services
Design
Ink
OracleClient
System.MessageBus
Transport
Queue
Web.Service
System.Storage
Port
PubSub
System.Web.UI
System.Windows.Forms
Description
Item
Core
Channel
Router
Page
WebControls
Forms
Discovery
Relationship
Contact
Service
Policy
Control
Adaptors
Control
Protocols
Media
Location
Peer Group
Print Dialog
HtmlControls
Design
Audio
Message
MobileControls
Design
Video
Document
System.Net
System.Web
Images
Event
HttpWebRequest
NetworkInformation
System.Help
System.Speech
Personalization
System.Xml
FtpWebListener
Sockets
System.Drawing
Recognition
Synthesis
Caching
Schema
Xpath
SslClientStream
Cache
SessionState
System.NaturalLanguageServices
Serialization
Query
WebClient
Fundamentals
Security
Base Application Services
Configuration
Deployment/Management
System.Timers
System.Text
System.Windows.TrustManagement
System.Web.Configuration
System.Collections
System.Web
System.Security
System.Globalization
System.Design
System.MessageBus.Configuration
Generic
Administration
Authorization
Permissions
System.Web.Security
System.Serialization
System.IO
System.Configuration
Management
System.ComponentModel
AccessControl
Policy
System.Threading
Ports
System.Resources
System.CodeDom
System.Management
Principal
System.MessageBus.Security
Credentials
System.Runtime
System.Reflection
Token
Cryptography
System.Deployment
System.EnterpriseServices
InteropServices
Serialization
System.Diagnostics
System.Transactions
CompilerServices
51Compatibilidad Futuro WebParts
- Los Web Parts para WSS/SPS de hoy funcionarán en
las versiones de WSS/SPS del futuro - Los Web Parts de Whidbey de mañana funcionarán
en los siguientes versiones de WSS/SPS - Los Web Parts de Whidbey de mañana funcionarán
también en las versiones actuales de WSS/SPS
después de aplicar una actualización ó SP
correspondiente.
52Web Parts ASP.NET(Futuro a partir de
Whidbey.NET)
- Ya no se dependerá de SharePoint 2003 para
desarrollar WebParts - Son bloques de construcciĂłn para cualquier Web
ASP.NET dinámico. - Completamente integrado en el modelo de controles
web de ASP.NET - Cualquier control-web puede ser un WebPart
- Cualquier user-control-web puede ser un WebPart
- Podemos utilizar los nuevos servicioes ASP.NET
- PersonalizaciĂłn, Roles, Membership, etc.
53Windows SharePoint Services
- La siguiente versión de WSS y SPS estará basada
en ASP.NET Whidbey - Los Web Parts actuales de WSS 2.0
- Funcionarán en la siguiente versión de WSS
- Los Web Parts de ASP.NET Whidbey
- Funcionarán sobre ASP.NET Whidbey
- Funcionarán sobre la siguiente versión de WSS
- Funcionarán sobre WSS 2.0 (Service Packs)
54Conclusiones 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
- Compatibilidad con futuros WebParts de .NET
Whidbey
55Recursos
- Centro de Downloads de SharePoint Products and
Technologies en MSDN - http//msdn.microsoft.com/sharepoint
- Ejemplos de desarrollo en GotDotNet
- Desarrollo Web Parts y Whidbey.NET WebParts
- http//www.asp.net
- http//www.asp.net/whidbey
- Proyectos y/o FormaciĂłn de Renacimiento
- http//www.renacimiento.com
- ctorre_at_renacimiento.com