Jun 28, 2013

New Event Recievers in SharePoint 2013

Hi guys,

This is a small post about the new event recievers which are introduced in 2013. As many of us know, eariler there was no default mechanism to trap the events that are raised for the security related activities like  user addition, group addition,Inheritance breaking etc ..

Generally , In daily project works we get a situation to track and do some custom actions/functionalites when the inheritance is broken and when a new user is added to the global groups etc..At that times we used to write a custom solutions for them. But from 2013 we can achieve these functionalities using the default OOB event rx.

To achieve this, our custom security event rx  class should be derived from SPSecurityEventReceiver Base class.

These are the methods which are availabe with this SPSecurityEventReceiver class.Here are categorized as user, group ,role and inheritance..

User Events:
  • GroupUserAdded
  • GroupUserAdding
  • GroupUserDeleted
  • GroupUserDeleting 
Group Events:
  • GroupAdded
  • GroupAdding
  • GroupDeleted
  • GroupDeleting
  • GroupUpdated
  • GroupUpdating 
Role Events:
  • RoleAssignmentAdded
  • RoleAssignmentAdding
  • RoleAssignmentDeleted
  • RoleAssignmentDeleting
  • RoleDefinitionAdded
  • RoleDefinitionAdding
  • RoleDefinitionDeleted
  • RoleDefinitionDeleting
  • RoleDefinitionUpdated
  • RoleDefinitionUpdating 
Inheritance Events:
  • InheritanceBreaking
  • InheritanceBroken
  • InheritanceReset
  • InheritanceResetting
Find more info about this class from msdn.


Jun 5, 2013

Shredded Storage in SharePoint 2013

This is a new architectural improvement related to management of data storage (large binary objects) in SharePoint 2013. In this post I am just giving you an overview of what this concept is and what is the importance of it ,but I am not going in to deeper details here.

Why Shredding?

In 2010, if we create a new version of a document in the library, the new version was resulted to a new independent BLOB , and this leads to the size of the db keep increasing as you create more versions. So to avoid this unnecessary space consumption, In 2013 they came up with a mechanism called shredding .

In 2010, for e.g. if we upload a file of 10 MB and if it has 10 versions the total size it would take 100MB to store in db. Even just for a small change like meta data change or a simple new line addition to the file content, another 10 Mb will be taking to store this new version. This will be a very huge performance issue in large environments where there are millions of records and their versions. But in shredding , it stores only the changes which were made to it,  instead the entire file.

How to configure this?

Nothing to do anything from our side, by default the shredded storage is enabled. But if you want to disable or re enable you can do it per web application basis.

What happens internally?

The shredded storage does the shred (or chunk) the BLOB in to many smaller shreds or pieces, so the single blob will be constructed in to many chunks . So now when a file is changed, these changes(only changes) are added to the storage but the previous version changes are just associated to this storage as a reference (that means here the previous changes are not taking the space with this change). While requesting for a particular version it combines all the shreds which are associated with this version and gives the response.

Here I am not showing any test runs to show how much storage is occupying with 2010 and 2013(with shredding), but to know the storage numericals on this topic, refer this article from msdn  .

Thank you,