How to handle deprecated functionalities/APIs during MOSS 2007 to SP 2010 migration

SharePoint 2013 has been RTM’ed yesterday and it is becoming a main stream SharePoint platform for development. However this article will focus on how to handle deprecated functionalities/APIs during MOSS 2007 to SP 2010 migration. This may sound outdated, it still holds good for people who want to move from SP 2007 to SP 2013, because there is no direct migration path from MOSS 2007 to SP 2013. The portal has to be migrated to SP 2010 from MOSS 2007, then it has be migrated to SP 2013.

1. Deprecated product feature / functionality in SharePoint 2007

During the Analysis phase a list of deprecated MOSS 2007 features / functionalities implemented in the MOSS 2007 environment need to be collated. In the pre-migration phase, the strategy for the deprecated functionalities needs to be formulated. The fix for a deprecated functionality may vary from a simple re-configuration to a complex re-build or a re-implementation of the component.

For example, the Site Template of MOSS 2007 is completely deprecated in SharePoint 2010. The fix for site templates is to create a new site in MOSS 2007, Upgrade to SP 2010, Resolve Issues and Save as Template in 2010.

MOSS 2007 deprecated1

Another example of a deprecated MOSS 2007 feature is the custom tool bar items of the List Forms.

MOSS 2007 deprecated2[8]

The recommended fix of the MOSS 2007 Custom Tool bar of List Form is to re-build the custom tool bar in V4 Ribbon by embracing the Ribbon User Interface. This requires a re-build and re-configuration effort.

MOSS 2007 deprecated3

The another example is STSADM commands used in MOSS 2007 deployment scripts. In this case STSADM is completely deprecated; the recommendation is to implement these scripts by leveraging PowerShell Scripts for SP 2010.

Finally, the fixes for deprecated features / functionalities necessitate us to plan for training effort for the end users. Because most of the times the fixes for deprecated features changes the way the end users perform the day-to-day work using the SharePoint platform.

2) SharePoint 2010 Deprecated APIs

This is a scenario where an API or set of APIs in the Object Model of SharePoint 2007 is no longer valid, which means the components that uses these APIs may break. The strategy for the deprecated APIs needs to be formulated in the pre-migration phase (Pilot Migration activity). During the pre-migration activity, the custom solutions need to be migrated to Visual Studio 2010, re-compiled and tested for occurrence of deprecated APIs. If  a deprecated API is found, the corresponding replacement API of SharePoint 2010 needs to be implemented in the code.

The following excel contains the exhaustive list of deprecated APIs in SP 2010.

 Subscribe to my blog

SharePoint 2010 Developer Dashboard Faqs

In this article, I’d be discussing about the SharePoint 2010 Developer Dashboard. The developer dashboard is one of the powerful features in SharePoint 2010, which is turned off by default. It comes into rescue while troubleshooting performance issues of the SharePoint Page. It provides performance (instrumentation) and tracing related information to troubleshoot the performance issues.

The SharePoint 2010 developer dashboard can be enabled by using both the STSADM command line tool and the powershell script. We’ll see how we can enable the SharePoint 2010 developer dashboard using powershell. We can enable the SharePoint 2010 developer dashboard in two modes like ‘On-Demand mode’ and ‘On Mode’.

On-DemandMode

In the on-demand mode, the developer dashboard does not get enabled in one-go. It enables a small icon right to the log in control in the  Ribbon. Once we click the icon, it enables the developer dasbhard which is visible in the bottom on the page

$spserver = [Microsoft.SharePoint.Administration.SPWebService]::ContentService.DeveloperDashboardSettings;
$spserver.DisplayLevel = [Microsoft.SharePoint.Administration.SPDeveloperDashboardLevel]::OnDemand;
$spserver.RequiredPermissions = 'EmptyMask';
$spserver.TraceEnabled = $true;
$spserver.Update();

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

pic1[3]

On Mode

In the on mode

$spserver = [Microsoft.SharePoint.Administration.SPWebService]::ContentService.DeveloperDashboardSettings;
$spserver.DisplayLevel = [Microsoft.SharePoint.Administration.SPDeveloperDashboardLevel]::On;
$spserver.RequiredPermissions = 'EmptyMask';
$spserver.TraceEnabled = $true;
$spserver.Update();
pic 22

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

pic3

Turning  Off

$spserver = [Microsoft.SharePoint.Administration.SPWebService]::ContentService.DeveloperDashboardSettings;

$spserver.DisplayLevel = [Microsoft.SharePoint.Administration.SPDeveloperDashboardLevel]::Off;

$spserver.Update();

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }