許多開發人員在Windows SharePoint Services中使用事件處理常式,以便基於文件庫或表單庫的執行自訂的Managed 程式碼。Windows SharePoint Services 3.0的目標是為開發人員提供更豐富的平台,來開發自訂的整合點,構建新型的在基礎結構之上的應用程式。為此,事件處理常式在Windows SharePoint Services 3.0中在範圍和深度等很多方面進行了擴充。
事件處理常式的變化
最重要的事件處理常式的新擴充包括以下內容:
更大的事件範圍
事件範圍擴大了。現在不僅包括文檔和表單庫,還包括列表和一些有限的網站和網站集合事件。
* 事件可以由列表觸發,讓您掛接代碼到清單項目的增加,修改,或刪除事件上。您可以通過Microsoft .NETManaged 程式碼建立定製的行為。
注意:對於文檔來說,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在每次網站建立時被啟用,來提供一個網站建立事件的處理。