Monday, July 27, 2015

Migrating from SharePoint to Sitecore

Introduction

For use as an external web site (as opposed to an internal intranet) SharePoint has progressed forward since the 2003/2007 versions and has many positive aspects. However, in more advanced areas such as marketing automation, e-commerce and custom data structures (everything is a list) it is lacking and may not be the best solution. Sitecore on the other hand is market leading in these areas (including marketing features), which leads to migrating from SharePoint to Sitecore.

The first step

As with any migration process, the first step you should follow is to identify what type of migration is going to take place. It is this that will affect the scope of the migration, the steps taken and ultimately the plan of action.Some examples of types of migrations are:
  • Like for like migration - in which case, very detailed requirements will need to be created to ensure nothing is missed.
  • New site (reusing majority of old content) - in this case you would create requirements of the new Sitecore site, see which elements (content, code or design) can be migrated from the old SharePoint site and to what level these elements can be migrated.
  • Migration of selected content - this may occur when a greenfields site is being created where some selected content (perhaps product information/history or other list data) is required but nothing else (page templates, widgets and unwanted content).

From the top down

The following list contains common SharePoint elements which are commonly included in an external web site, and what they could be potentially created as in your new Sitecore web site.

Master pages and page layouts - In SharePoint a master page contains the look and feel of the web site (base HTML/style) along with any shared components common across the site (navigation and footer for example). A page layout will contain field controls and web parts which are relevant only to pages using that layout. In Sitecore the master page(s) would be created as a layout(s) and the page layout content could be migrated to sublayouts/renderings which are added to placeholders (both on the layout and inside the sublayouts/renderings themselves). 

Pages - A page in SharePoint uses a page layout to display content - which may be web parts, lists/libraries or HTML blocks. In Sitecore you would simply create a page template (which would contain general fields such as metadata and title etc.). This page template would then contain the required sublayouts/renderings which contain the content of the page (a layout would be used in place of a master page as well).

Web Parts - In SharePoint a web part is essentially a user control which contains front-end and back-end code which performs a given task/action. This web part may also interact with the SharePoint data (lists for example). In Sitecore a sublayout/rendering has a similar concept to a web part, being that it is a user control with front-end/back-end code which can be re-used (multiple times in the same item/page as well). Code can also be re-used when migrating from a web part to sublayout/rendering - just remember that any SharePoint data sources will be replaced as well.

Lists (custom, calendar, announcements, etc.) - When it comes down to it, everything in SharePoint is stored as a list. Whether it be a custom list, or one of the out of the box types, they can be migrated to custom templates in Sitecore. The benefit of custom templates is that there are more data types to choose from, and you can inherit from other templates (so common elements across your SharePoint lists are defined in one template in Sitecore).

Document/Picture libraries (lists) -SharePoint is known for it's document management capabilities, however document/pictures are ultimately stored in a list (with versions). Documents and images can be migrated to the Sitecore media library. The benefit here is that, these images can then be referenced in any other custom templates which means less data replication and easier updating of content.

Workflows - Workflows are another one of the features that SharePoint is well known for. Workflows in Sitecore are very easy to setup and the visual aspects of creating workflows makes it a simple task. There are also several workflows included out of the box which gives a good starting point.

User accounts - Sitecore much like SharePoint have their own accounts built into the CMS, active directory accounts and even custom accounts (stored in database or LDAP for example). There should be no issue using the same source for user accounts when migrating from SharePoint to Sitecore.

Programmatic migrations

There are methods available to migrate content from SharePoint to Sitecore, rather than having to move it manually one item at a time. SharePoint offers a service which can be called from within code, with the data then used to create Sitecore items. This method may require some manual intervention to organize/clean the data as required, but should take care of much of the manual migration process.

Conclusion

Sitecore is the market leading CMS with a lot more available out-of-the-box than SharePoint. When planning your migration, it's a good idea to consider what the best way to implement the business requirements in Sitecore would be, and perhaps what else Sitecore may bring to the table that could exceed requirements delivering a stronger solution that ultimately leads to more engaged users.

No comments:

Post a Comment