Whenever we work with Event Receiver or Remote Event Receiver in SharePoint, we come across two common methods that are automatically created when we add an event receiver *.svc file. These methods are -

Both the methods are always confusing with respect to their usage. There is very limited information available on the web regarding these two methods. So, here is the basic difference between them by which one can get the clear basic idea of them both, hence, selecting the required one between them to write their business logic codes.

Before moving directly to the difference, let's understand the types of events fired in event receivers. There are mostly 2 types of events fired on any list operations, list item operations - "before event" and "after event".

All events ending with “-ing” are termed as Before events, while all the events ending with “-ed” are called as After events.

Examples for Before and After Events -

Before Events After Events
ListAdding ListAdded
ListDeleting ListDeleted
FieldAdding FieldAdded
FieldDeleting FieldDeleted
FieldUpdating FieldUpdated
ItemAdding ItemAdded
ItemUpdating ItemUpdated
ItemDeleting ItemDeleted
ItemCheckingOut ItemCheckedOut
ItemCheckingIn ItemCheckedIn
ItemUnCheckingOut ItemUnCheckedOut
ItemAttachmentAdding ItemAttachmentAdded
ItemAttachmentDeleting ItemAttachmentDeleted
ItemFileMoving ItemFileMoved
ItemVersionDeleting ItemVersionDeleted

There are other events also like AppInstalling, AppInstalled, AppUninstalling, and AppUnistalled likewise.

Now, when we are aware of After and Before events, it becomes easy to understand the basic difference between these methods.

ProcessEvent()

ProcessOneWayEvent()