Как организовать приемники событий SharePoint в Visual Studio? - PullRequest
1 голос
/ 09 марта 2010

У нас есть несколько пользовательских списков, каждый из которых имеет несколько получателей событий, связанных с ним (хотя на данный момент написана только пара). Эти приемники событий обрабатывают мешанину отдельных событий и выполняют различные функции. Мой вопрос заключается в том, как организовать их в решении / проекте Visual Studio таким образом, чтобы это имело смысл. У каких получателей событий должна быть своя собственная функция / класс / папка / проект / решение?

В настоящее время у нас есть два решения, каждое из которых просто использует то, что Visual Studio использует по умолчанию при создании нового проекта Event Receiver с собственным решением. У другого есть один проект с одной папкой, названной в честь определенного списка, который настроен на обработку двух событий (ItemAdded и ItemUpdating) в этом списке. Папка содержит два файла C #, каждый из которых содержит свой собственный класс с одной функцией для данного конкретного получателя событий.

Но если у меня есть несколько получателей событий для одного списка, я должен поместить их в один файл? Или в отдельные файлы в одной папке? Или в отдельные проекты? И если у меня есть два логически различных действия, которые должны быть выполнены с одним и тем же элементом списка в одном и том же событии, должен ли я иметь один приемник событий, который выполняет оба действия, или отдельные приемники событий для каждого?

Моя текущая мысль состояла в том, чтобы иметь папку для каждого списка, с отдельными файлами для каждого получателя события и использовать один получатель события для выполнения любых действий, подходящих во время этого события (независимо от того, независимы они или нет). Мне просто интересно, какой была бы организация типа "лучшие практики".

1 Ответ

0 голосов
/ 09 марта 2010

Это более или менее личное мнение, так как я не видел лучших практик по этому вопросу. В моих проектах у меня есть следующая структура для списков и соответствующих им классов обработчиков событий:

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 и т. Д.

Одной из альтернатив будет размещение всех кодов / классов получателей событий в отдельной структуре папок, но, на мой взгляд, лучше иметь их в той же папке, что и определение списка. Таким образом, все, что связано с этим списком, находится в одном месте.

В конце концов, я думаю, что вы должны использовать структуру, которая лучше всего работает для вас и вашей команды, и быть последовательной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...