WSS3SDK之:Event Handler有哪些更新
许多开发者在Windows SharePoint Services中使用事件处理程序,以便基于文档库或表单库的执行自定义的托管代码。Windows SharePoint Services 3.0的目标是为开发者提供更丰富的平台,来开发自定义的集成点,构建新型的在基础结构之上的应用程序。为此,事件处理程序在Windows SharePoint Services 3.0中在范围和深度等很多方面进行了扩展。
事件处理程序的变化
最重要的事件处理程序的新扩展包括以下内容:
更大的事件范围
事件范围扩大了。现在不仅包括文档和表单库,还包括列表和一些有限的网站和网站集事件。
* 事件可以由列表触发,让您挂接代码到列表项目的增加,修改,或删除事件上。您可以通过Microsoft .NET托管代码创建定制的行为。
注意:对于文档来说,Before和After属性对于后事件(Post Event)都保证可用,如ItemUpdated ,但Before属性不适用于列表项的后事件。
* 当用户增加或删除列表的字段时发生的事件。
* 当一个网站或网站集被删除时发生的事件。
注意:Windows SharePoint Services的支持通过对象模型提供网站删除的事件,而不能通过自定义Feature实现。
增加了事件的深度和丰富程度
事件的深度和丰富程度,也是一个重大的新提升,目前有两大类事件:
* Before事件,在动作前引发的事件,允许我们执行自定义验证,检查,或对即将删除,修改或添加到列表数据进行处理。这类事件常贯以后缀'ing' 来标识他们是Before事件。请注意,代码对这些事件反应,是以同步的方式执行的。
* After事件,在动作后引发的事件,这可能是WSS 2.0开发人员最熟悉的方式。这些事件常用后缀'ed'标识,代码处理是异步方式执行的。
事件处理程序更灵活
事件处理程序的注册不同于Windows SharePoint Services 2.0 的一个文档库或表单库只能挂接一个组件。在Windows SharePoint Services 3.0中,在处理和注册您的事件时您具有更多的灵活性。
结果返回到用户界面中的沟通能力
在Windows SharePoint Services 3.0,您可以将结果返回到用户界面中。例如,在某个情景下,当用户试图增加一个新项目时,和一个事件处理程序根据某些业务规则将该项目设为无效。在这种情况下,您可以创建一个错误信息传回给用户。
网站创建或删除事件
您可以为WebDeleting或WebDeleted事件创建一个事件处理程序。这样当一个网站被删除时,可以先备份和储存一个存档,以方便回收。就备份机制而言,如果删除的是根网站,请使用Backup方法;否则,使用SPExport类。
如果要注册一个回调组件,使其在某网站集或整个部署环境的全局内每次新建网站时触发,您可以创建一个Feature,当激活时处理程序可以被触发。由于Feature可以作用于一个网站,我们可以建立一个Feature在每次网站创建时被激活,来提供一个网站创建事件的处理。