2010-03-09 54 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等

一个替代方案将是把所有事件接收器的代码/类在一个单独的文件夹中结构,但在我看来,最好将它们放在与列表定义相同的文件夹中。这样,与该清单相关的所有内容都集中在一个地方。

最后,我想你必须使用哪个最适合你和你的团队结构和一致。

相关问题