29 Nov 2016

SharePoint Development - Origins

This post is the first in a series looking at how SharePoint development has changed over the years, and how it is likely to change in the future. In this post, we will look back at SharePoint's origins, up to and including the release of SharePoint 2003.

Series Outline:

 

SharePoint's Origins

SharePoint evolved from two separate Microsoft projects, named "Office Server" and "Tahoe", that were developed during the development of Office XP. It was also influenced by the Platinum project that introduced the concept of digital dashboards, and the TeamPages project that allowed users to create and edit simple web-based lists (and the origin of the CAML markup language). These projects were all aimed at accessing and sharing information across organisations. The initial development on these products started back in March 1998, prior to the release of the .NET framework (the initial beta versions of the .NET framework were released in late 2000).

SharePoint 2001

The initial SharePoint release was actually two separate products, the Microsoft SharePoint Portal Server (SPS, released 2001) and the Microsoft SharePoint Team Services (STS, released in 2002). The SPS product was based on "Tahoe", offering top-down portals, search and document management. Tahoe was a collection of different technologies from various companies acquired by Microsoft that was built on top of the Exchange data store. STS was based on "Office Server", and was a bottom up team collaboration product.

Thankfully, I have never had to work with this early version of SharePoint, which was very basic.

SharePoint 2003

In 2003, SharePoint as we would recognise it today was released. It combined STS and SPS together to offer collaboration, search, content management and portal capabilities in a single product. It had an improved user interface, better personalization, and a collaboration store.

A lot of the criticism aimed at the initial SharePoint 2001 release was around the under-powered web store that limited the functionality of the product and a digital dashboard that was outside Microsoft’s core development platform, limiting support options for users. As a result, significant work was put into making SharePoint 2003 more reliable and scalable, and to improve support options by making use of the same developer tools as other Microsoft products.

The product came in 2 different versions:

  • Windows SharePoint Services v2 (WSS 2.0), a basic free version that was included with Windows Server 2003.
  • SharePoint Portal services 2003 (SPS 2003), a premium version was built on top of WSS that included additional functionality for document management and search.

The main features included:

  • Alerts
  • Site templates
  • Calendars
  • Surveys
  • Document Libraries
  • Lists
  • MySite
  • Site Directory
  • User Profile
  • Improved search and indexing (SPS)
  • Improved user interface and personalization options
  • Taxonomy
  • Document collaboration and versioning features
  • Single Sign-on
  • Audiences
  • Web Parts (.cab)

 

Developing for SharePoint 2003

The major developer features in SharePoint 2003 were the introduction of server-side API, and the replacement of the Exchange data store with SQL Server. The server-side API made use of the new integration with the .NET framework, and allowed the development of custom code solutions, including web parts. In addition to the default web parts (Content Editor, Image, Form and Contacts), developers could develop custom web parts using Visual Studio 2003 (using the .cab file format).

Note that in SharePoint 2003, and all subsequent versions of SharePoint, COM components (unmanaged code) are used for core features, with a (smaller) managed layer wrapped around it for the .NET API. This is the cause of the dispose issues that affects fundamental SharePoint objects such as SPSite and SPWeb (here and also here).

I did have to work with SharePoint 2003, and it was a pretty horrible experience. Even in it's second release, it was a very immature product, and the developer tooling (based around Visual Studio) was lacking.

In the next post, I’ll look at at the release of MOSS 2007.

SharePoint Development - Past, Present and Future

With the recent release of SharePoint 2016, and with details of the latest development framework (the SharePoint Framework) for SharePoint becoming available, I thought it would be useful to produce a series of blog posts looking at SharePoint development over the years, and how it is likely to change in the future, based on trends from past releases and the current focus on cloud based solutions from Microsoft. The series will consist of 6 articles, published weekly:

This series will be focused primarily on on-premise SharePoint development. While Office 365/SharePoint Online are growing rapidly and are influencing the development of the SharePoint platform greatly, the majority of large organisations are still using on-premise, and are (rightly) wary of having all their data in a third party data centre, even if that third party is Microsoft. I'll point out trends in Office 365 that I think will affect future SharePoint development, but it isn't the main focus for these articles.

I'll be drawing heavily on my own experiences of developing for SharePoint. I first started developed solutions for SharePoint back in 2006, when as a recent graduate I was part of a large team building integration products with SharePoint 2003 (a hideous project). I then spent over 3 years working full time on SharePoint solutions (MOSS 2007 and SharePoint 2010), at which point I took a break to spend several years lost in rewriting large .NET legacy applications. Last year, I started working with SharePoint once more. In this new role, I am currently part of a small team working on a phased SharePoint migration (2010 to 2013) that will be completed in the new year (January 2017). Over all this time, I've worked on a wide variety of SharePoint solutions (intranets, various organisational platforms, eCommerce sites, HR applications and currently a Virtual Learning Environment).

So, lets start by looking at the origins of the SharePoint platform.