Whilst making the march into SharePoint 2010, lets’ not forget those clients still using SharePoint 2003 and wanting to migrate into 2010. This article attempts to list some key things you need to be aware of in migrating from 2003 to 2010, and lists web parts in 2003 that you need to be aware of as part of the migration exercise.

I wrote this article based on real life procedures, trial and error, exasperation, tearing my hair out (of which I have little) and finally jumping up and down with joy when things fell into place.

Of course, I studied like crazy, and trawled the internt for tons of information. The following two links are the best I could find. Now, as you are probably aware if you’ve been using SharePoint  for some time, that SharePoint 2003 is no longer being directly supported by Microsoft. That said, they are providing information concerning migration from 2003 to 2010 at this link:

http://technet.microsoft.com/en-gb/library/ee947141.aspx

In addition to the above, there is a fantastic resource from Joel O sitting here:

http://blogs.msdn.com/b/joelo/archive/2010/01/31/sharepoint-2010-upgrade-key-resources.aspx

In summary, to make the move from 2003 direct to 2010 is pretty much not a great idea, the technical differences are vast, not just at the platform end, but also at the SQL end, so forget inplace upgrade. Options are:

Migrate 2003 to 2007, then from 2007 to 2010 (i.e. follow the guide above and the ones listed on Joels articles – recommended approach) OR

Use third party migration tools (though make sure you select the vendor with great care) – Avepoint, Quest, Metalogix, Tsunami apparently have options available.

Of course, whilst following the migration path, it’s also very important to note the differences in the Webparts from 2003 to 2007, and also what you should do to test Web Parts and possible ‘gotchas’. I did this as a blog sometime back but forgot to attach the table properly, so, let’s bring this a bit more up to date. Below is the 2003 to 2007 Web part comparison. Shortly, I’ll do one for 2007 to 2010.

 

Web Part Name

File Name

SPS 2003

WSS v2

MOSS 2007

WSS v3

Advanced Search Box AdvancedSearchBox.dwp Yes
Authored List Filter AuthoredListFilter.dwp Yes
Topic Assistant Suggestions Autocat.dwp Yes
BusinessDataActionsWebPart.dwp Yes
BusinessDataAssociationWebPart.webpart Yes
BusinessDataDetailsWebPart.webpart Yes
BusinessDataFilter.dwp Yes
BusinessDataItemBuilder.dwp Yes
BusinessDataListWebPart.webpart Yes
Area Details Catdetail.dwp Yes
Sites in Category (SiteDirectory) CategoryResultsWebPart.webpart Yes
Categories (SiteDirectory) CategoryWebPart.webpart Yes
Colleague Tracker contactlinks.dwp Yes
Contact Details contactwp.dwp Yes
Content By Query ContentQuery.webpart Yes
Date Filter DateFilter.dwp Yes
Filter Actions FilterActions.dwp Yes
Group Listings GroupedListings.dwp Yes
KPI Details IndicatorWebPart.dwp Yes
Views from SAP IViewWebPart.dwp Yes
Key Performance Indicators KpiLisWebPart.dwp Yes
News LatestNews.dwp Yes
Links for You LinksForYou.dwp Yes
Memberships (in other sites) memberships.dwp Yes
Excel Web Access Microsoft.Office.Excel.WebUI.dwp Yes
Content Editor MSContentEditor.dwp Yes Yes Yes Yes
Image Web Part MSImage.dwp Yes Yes Yes Yes
Members MSMembers.dwp Yes Yes Yes
Page Viewer MSPageViewer.dwp Yes Yes Yes Yes
Form Web Part MSSimpleForm.dwp Yes Yes Yes Yes
Relevant Documents MSUserDocs.dwp Yes Yes
User Tasks MSUserTasks.dwp Yes Yes
XML Web Part MSXml.dwp Yes Yes Yes Yes
Your Recent Documents Mydocs.dwp Yes Yes
My Workspace Sites Myworks.dwp Yes Yes
News Areas NewsAreas.dwp Yes
News for You NewsForYou.dwp Yes
SQL Server Analysis Services filter OlapFilter.dwp Yes
My Mail Folder Owa.dwp Yes Yes
My Calendar Owacalendar.dwp Yes Yes
My Inbox Owainbox.dwp Yes Yes
My Tasks Owatasks.dwp Yes Yes
Page Field filter PageContextFilter.dwp Yes
People Search Box PeopleSearchBox.dwp Yes
People Search Core Results PeopleSearchCoreResults.webpart Yes
Query String (URL) filter QueryStringFilter.dwp Yes
My Links Quicklinks.dwp Yes Yes
RSS Viewer RssViewer.webpart Yes
SearchActionLinks.webpart Yes
SearchBestBets.webpart Yes
SearchBox.dwp Yes
SearchCoreResults.webpart Yes
SearchHighConfidence.webpart Yes
searchpaging.dwp Yes
searchstats.dwp Yes
searchsummary.dwp Yes
Site Aggregator siteFramer.dwp Yes
SharePoint List filter SpListFilter.dwp Yes
My Alerts Summary Subscrip.dwp Yes
Summary Links SummaryLink.webpart Yes
Navigation Hierarchy TableOfContents.webpart Yes
I need to… TasksAndTools.webpart Yes
Text Filter TextFilter.dwp Yes
This Week In Pictures ThisWeekInPictures.dwp Yes
Top Sites TopSitesWebPart.webpart Yes
Area Contents Toc.dwp Yes
Current User filter UserContextFilter.dwp Yes
WSRP Consumer WSRPConsumerWebPart. .dwp Yes
List views
Announcements Yes Yes Yes Yes
Contacts Yes Yes Yes Yes
Events Yes Yes Yes Yes
General Discussions Yes Yes Yes Yes
Links Yes Yes Yes Yes
Shared Documents Yes Yes Yes Yes
Tasks Yes Yes Yes Yes
Document Library Yes Yes Yes Yes
Image Library Yes Yes Yes Yes

 

Whilst on this topic, it’s very important to Test, Validate and Verify all components in 2007 when you’ve completed a migration from 2003

From a Technical Perspective.

Web Parts are standard ASP.NET custom controls, it’s important to identify the version where they were developed. Get the code and ensure they can migrate to Visual Studio 2008 / 2010 – reinstall these on a test platform to ensure they can migrate. Several glaring issues can arise due to the way code has been defined for 2003 which use now depreciated events in 2007 (meaning they will break).

2003 Web parts connect slightly differently to the new versioned web parts; Check all the connected events on the web parts and check the connection interface pairing iCellProvider,iCellConsumer, IRowProvider, IRowConsumer, IListProvider, IListConsumer, IFilterProvider and IFilterConsumer.

Web parts that have been defined as compatible and connected in 2003 must remain compatiible and connected in 2007/2010. An incompatibility between webparts will show the connections option (the hook between connected webparts) as greyed out – so check connections are still enabled looking at the ‘Ievents’ mentioned above.

Additionally, I know that this link is definitely still valid and I would apply most of the functional testing using these steps from Microsoft:

http://msdn.microsoft.com/en-us/library/dd583141(office.11).aspx

From a Non-Technical Perspective.

To those unsure about what ‘Functional Tests’ mean. Functional Tests capture user requirements in a very useful way. Traditional development captures requirements in terms of ‘use’ cases – meaning, the developer ‘guesses’ and ‘assumes’ the user will carry out certain functions. Hence, Functional Tests are written from the user perspective; they confirm the product does what the users are expecting it to. Therefore, it is important that all functional tests be written as a dialog. To do this you will require system analysis skills, not developer skills since these dialogs are written in a way the user will understand and with virtually no technical glossary terms!

So, functional tests are written from the user’s perspective and will focus on the area of SharePoint that users are interested in. You will need to develop a good functional testing framework, and use these functional tests to identify what the user really wants. In this way, the functional tester gains an automated tool and has a starting point for using the tool.

Going back to ensuring things work as they should post migration (of anything in SharePoint). You need to ensure you have a full verification and validation programme backed up by a solid configuration management process. This might sound like a lot of twaddle, but if, for example there was adequate documentation and version history concerning the web parts in 2003 concerning the install, development, configuration on 2003 then it is much easier to confirm what needs to be tested when it gets to 2007 land.

The SharePoint Verification and Validation blog I’ve been writing up goes into this from a basic perspective, but my forthcoming book (plug) covers this area in great detail.

Functional testing includes confirming the reaction to virtually every setting in the web part in 2003 and then comparing that with 2007, and getting sign off from the client.

Hope this helps anyone out there!