manejadores de eventos en wss 3.0
DESCRIPTION
WebCast en el que veremos los manejadores de eventos en SharePoint. Si bien esta herramienta implica adentrarse en el mundo de desarrollo de SharePoint, es una de las extensiones más sencillas de utilizar. Haremos un recorrido rápido del alcance de esta funcionalidad y veremos un ejemplo desde Visual Studio. Por último comentaremos las novedades de SharePoint 2010 respecto a este tema.TRANSCRIPT
manejadores de eventosen windows sharepoint services 3.0
Web: http://www.rmya.com.ar/
Geesk.Ms http://geeks.ms/blogs/jpussacq/
Blog técnico: http://surpoint.blogspot.com/
Blog no técnico: http://excelza.blogspot.com/
Twitter: http://www.twitter.com/excelza
Mail: [email protected]
Juan Pablo Pussacq Laborde
agenda
Conceptos sobre eventos en WSS 3.0
Demo 1: completando una columna en un evento de ítem
Demo 2: validando integridad en un evento de ítem
Demo 3: ejecutando un proceso de negocio en un evento de ítem
Demo 4: ejecutando un evento al instalar una característica
Novedades eventos en SharePoint 2010
Bibliografía y enlaces interesantes
Preguntas
¿desarrollar en SharePoint? ¿cuándo?
Desarrollo80% de la aplicación
con el 20% del esfuerzo
Manejadores de Eventos
FeaturesApplication
Pages
Listas
Flujos de trabajo
PáginasWebparts
- Más rápido
- Mejor calidad
- Prototipable
- Más ordenado
OOB (out of the box)
¿qué son los eventos?
Permiten extender a través de
desarrollo una aplicación
SharePoint
Agregan comportamiento a
listas e ítems entre otros
Un manejador de evento se
ejecuta automáticamente
como respuesta a un evento
como agregar una columna en
una lista o modificar un ítem
en una lista
¿qué eventos maneja WSS 3.0?
imaginen…
Validaciones de datos
•Validar un dato de acuerdo a algún formato o basado en otras columnas
Control de integridad referencial
•Verificar que el valor ingresado exista en una tabla SQL
Control de unicidad
•Verificar que el valor de una columna no se repita dentro de la lista
Ejecución de procesos de negocio
•Disparar la creación de ítems en otras listas
Lo que no puede resolver un campo calculado
•Un cálculo basado en la columna ID (no soportada en campos calculados)
Protección de la parametrización
•Impedir que un administrador cambie la configuración de una lista
Cambios en la seguridad
•Modificar la seguridad de un ítem de acuerdo al valor de una columna
Controles de seguridad funcional
•Controlar el acceso a un ítem de acuerdo a alguna regla de negocio
¿antes o después? ¿sincrónico o asincrónico?
Se ejecutan cuando el usuario escribió información en la base de contenido.
Ocurre en forma temprana en el ciclo de vida de procesamiento, permitiendo cancelar la operación.
Gran oportunidad para efectuar validaciones personalizadas.
Permiten acceder al valor de las columnas antes y después de la modificación (AfterProperties y BeforeProperties)
Son sincrónicos (bloquean).
Terminan en «ing» (ItemAdding).
Se ejecutan luego de que la información ha sido confirmada («commit») en la base de contenido.
No permiten cancelación.
Son a-sincrónicos (no bloquean).
Terminan en «ed» (ItemAdded).
BE
FO
RE
(A
nte
s)
AF
TE
R (D
esp
ué
s)
todos los eventos
pasos para crear un evento
Crear Proyecto
• En Visual Studio
• De tipo «class library»
Definición la clase que herede de:
• SPListEventReceiver
• SPItemEventReceiver
• SPWebEventReceiver
• SPEmailEventReceiver
• SPFeatureReceiver
«Bind» a una lista o sitio según corresponda. A través de:
• XML en una Feature
• Programáticamente
Instalar
• La clase en la GAC con «strongname»
• La característica con STSADM
• IISReset
definición de la clase
namespace surpoint
{
public class ListasEventReceiver : SPListEventReceiver
{
public override void FieldAdding(SPListEventProperties properties)
{
properties.ErrorMessage = "No puede alterar la lista";
properties.Cancel = true;
}
}
}
binding (XML)
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Receivers ListTemplateId= "105" >
<Receiver>
<Name>Field Adding Event</Name>
<Type>FieldAdding</Type>
<Assembly>YQPlus, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=1608adf520825e49 </Assembly>
<Class>YQPlus.ContactosEventReceiver</Class>
<SequenceNumber>1000</SequenceNumber>
</Receiver>
</Receivers>
</Elements>
Sólo pueden registrarse en características cuyo ámbito sea «site».
Sólo se puede registrar el evento para un «tipo de lista», no para una lista en particular.
También se puede registrar eventos para tipos de contenidos o features.
«SequenceNumber» indica el órden cuándo tengo más de un evento.
tipos de listas
Sólo se puede registrar
el evento para un «tipo
de lista», no para una
lista en particular.
binding (programáticamente)
string ensamblado = "YQPlus, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=1608adf520825e49";
string claseProyectos = "YQPlus.ProyectosEventReceiver";
SPList listProyectos = site.Lists["Proyectos"];
listProyectos.EventReceivers.Add(SPEventReceiverType.ItemAdded,
ensamblado,
claseProyectos);
DEMO
demo 1completando una columna en un evento de ítem
demo 2 validando integridad en un evento de ítem
demo 3ejecutando un proceso de negocio en un evento de ítem
demo 4ejecutando un evento al instalar una característica
SharePoint 2010, lo nuevo en eventos
Nuevos eventos
• Lista
• ListAdding
• ListAdded
• ListDeleting
• ListDeleted
• Web
• WebAdding
• WebProvisioned
Sincronismo
• Los eventos Afterahora pueden ser sincrónicos.
• En forma predeterminada son a-sincrónicos
Algunas variantes adicionales
respecto al ámbito (scope) en que se
registran los eventos
SharePoint 2010, lo nuevo muy relacionado
bibliografía y enlaces interesantes
Libros Inside Microsoft Windows SharePoint Services 3.0 (Chapter 6)
By Ted Pattisonand & Daniel Larson (Microsoft Press)
Artículos MSDN: http://msdn.microsoft.com/en-us/magazine/cc163318.aspx (Events
in SharePoint 2007)
MSDN SharePoint 2010: http://msdn.microsoft.com/en-
us/library/ee540025(office.14).aspx (Events Improvements)
Surpoint: http://surpoint.blogspot.com/search/label/Eventos
Material de este webcast Próximamente en http://surpoint.blogspot.com/
¿preguntas?
gracias!manejadores de eventos en Windows SharePoint Services 3.0
Web: http://www.rmya.com.ar/
Geesk.Ms http://geeks.ms/blogs/jpussacq/
Blog técnico: http://surpoint.blogspot.com/
Blog no técnico: http://excelza.blogspot.com/
Twitter: http://www.twitter.com/excelza
Mail: [email protected]
Juan Pablo Pussacq Laborde