2010-03-09 55 views
1

我們有幾個自定義列表,每個自定義列表都有幾個與之關聯的事件接收器(儘管目前只有幾個事件已經寫入)。這個事件接收器處理單個事件的混雜混搭,並執行各種功能。我的問題是如何以合理的方式在Visual Studio解決方案/項目中組織它們。哪些事件接收器應該有自己的功能/類/文件夾/項目/解決方案?如何在Visual Studio中組織SharePoint事件接收器?

目前我們有兩個解決方案,其中的每一個簡單地使用任何的Visual Studio默認創建其自己的解決方案一個新的事件接收器的項目時。另一個項目有一個項目,其中一個文件夾以特定列表命名,該列表被設置爲處理該列表中的兩個事件(ItemAdded和ItemUpdating)。該文件夾包含兩個C#文件,每個文件都包含自己的類,併爲該特定事件接收器提供一個函數。

但是,如果我有幾個事件接收器的一個名單,我應該把這些成一個單一的文件?或者放到同一文件夾中的單獨文件中?或進入單獨的項目?如果我有兩個邏輯上不同的動作應該在同一個事件中的同一個列表項上執行,我是否應該有一個事件接收器既執行這兩個動作,也爲每個事件分開事件接收器?

我目前的想法是讓每個列表的文件夾,對每個事件接收器單獨的文件,並使用一個單一的事件接收器來執行任何操作是活動期間適當的(無論是獨立的或沒有)。我只是想知道什麼是「最佳實踐」類型的組織。

回答

0

這是更礦石少了個人的看法,因爲我還沒有看到任何關於這個問題的最佳實踐。 在我的項目,我有一個列表及其相應的事件處理類的結構如下:

12 
|- TEMPLATE 
|-- FEATURES 
|--- My Feature 
|---- CustomList1 
|----- Allitems.aspx 
|----- DispForm.aspx 
|----- EditForm.aspx 
|----- ListDefinition.xml 
|----- ItemEventReceiver.cs 
|----- ListEventReceiver.cs 
|----- schema.xml 
|----- Etc, etc... 
|---- CustomList2 
|----- Allitems.aspx 
|----- Etc, etc... 

我有項目接收事件的列表接收機活動文件和一個類。
在ItemEventReceiver.cs,我都ItemDeleting,ItemAdding等,並且在ListEventReceiver.cs我有FieldAdding,FieldUpdated等

一個替代方案將是把所有事件接收器的代碼/類在一個單獨的文件夾中結構,但在我看來,最好將它們放在與列表定義相同的文件夾中。這樣,與該清單相關的所有內容都集中在一個地方。

最後,我想你必須使用哪個最適合你和你的團隊結構和一致。

相關問題