Getting Started with SharePoint Development
How do I get started working as a Professional Developer on SharePoint? Here's a brief outline of the options.
First you need to have prerequisite skills in .NET Development and in particular ASP.NET Development. SharePoint is built on those technologies and most everything you do in SharePoint is using .NET and ASP.NET with additional functionality, and additional API's.
Go on a Training Course
When I started out on SharePoint as an experienced .NET developer I realized there is lots of new stuff to learn. The first thing I did was attend The Great SharePoint Adventure course by Ted Pattison Group. The trainer for the week long course was Andrew Connell.
Ted Pattison Group – The Great SharePoint Adventure
MindSharp – Developers Guide to Windows SharePoint Services
AppDev - FREE Sample Microsoft SharePoint 2007 for Developers Training CD
Microsoft Certified Partners for Learning Solutions – Advanced SharePoint 2007 Development
Online Microsoft eLearning Training – Free for a limited time
A great starting place is to take an online course.
WSS Development
MOSS Development
Read Books
Here's some great books on SharePoint development. There are plenty more available at the online book stores so make your own choice.
Inside Windows SharePoint Services 3.0
Inside Microsoft Office SharePoint Server 2007
Get Certified – Take an Exam
There is SharePoint developer certification for both WSS and MOSS.
70-541 TS: Microsoft Windows SharePoint Services 3.0 – Application Development
70-542 TS: Microsoft Office SharePoint Server 2007 – Application Development
Write Your First SharePoint Program
To write SharePoint code you need:
- SharePoint installed on your local development machine and this means you need to run Windows Server 2003 or Windows Server 2008. VPCs are available here. There is a SharePoint one, or you can get a smaller base and add WSS or MOSS to it.
- Get Visual Studio 2005 Professional or above, the Visual Studio 2005 extensions for Windows SharePoint Services 3.0, v1.1 and the Visual Studio 2005 extensions for Windows Workflow Foundation (Visual Studio 2008 support is planned for June 2008).
- Get the WSS SDK and the MOSS SDK. They are also available online for WSS and MOSS.
- Start Visual Studio on your Windows Server machine that has SharePoint installed and create a new Windows Console Application. Yes there are SharePoint project templates, but I'm going for a fast first SharePoint program here and we don't need them yet.
- If you are on Windows Server 2008 then make sure you started Visual Studio by right click and run as administrator.
- Add a reference to Microsoft.SharePoint.dll (shown in references as Windows SharePoint Services)
- Add a using Microsoft.SharePoint
- Add this code:
static void Main(string[] args)
{
// Update to your server name
using (SPSite siteCollection = new SPSite("https://localhost"))
{
SPWebCollection site = siteCollection.AllWebs;
foreach (SPWeb web in site)
{
try
{
SPListCollection lists = web.Lists;
Console.WriteLine("Site: {0} Lists: {1}",
web.Name, lists.Count.ToString());
foreach (SPList list in lists)
{
Console.WriteLine("List: {0} {1}",
list.Title, list.ID.ToString());
}
}
//catch (Exception)
//{
// // handle
// throw;
//}
finally
{
web.Dispose();
}
}
} // dispose is called on site as a result of using()
Console.WriteLine("Press ENTER to continue");
Console.ReadLine();
}
9. Run it with F5
This is all also described here in the WSS SDK.
Join the Discussion and Ask Questions on the MSDN Forums
This is a great place to search for answers, or to ask questions yourself, or to answer other people's questions. The SharePoint Developer and Programming forum is pretty active.
SharePoint Development and Programming Forum
Watch WebCasts
For WSS (the basic SharePoint API stuff) there are many on MSDN under Getting Started and under Learn.
For MOSS there's also Getting Started and Learn material.
Try Virtual Labs Online
Creating a SharePoint Workflow
More SharePoint Developer Virtual Labs coming in June 2008.
Spend time on MSDN
There are separate sections for WSS and MOSS so you need to go to both.
https://msdn.microsoft.com/sharepoint - For WSS
https://msdn.microsoft.com/en-us/office/aa905503.aspx - For MOSS
Check Out More Online Resources
Here's an introductory talk I gave at SharePoint Connections, Spring 2008.
https://blogs.msdn.com/pandrew/archive/2008/04/21/sharepoint-connections-talk-on-visual-studio-2005-extensions-for-sharepoint.aspx
Here's a Microsoft Learning Class Material which could be offered by a certified trainer:
50064 – Advanced SharePoint Developer course
Online Microsoft eLearning links are here:
https://www.microsoftelearning.com/catalog/developer.aspx#SharePoint
More developer resources here:
https://www.microsoft.com/sharepoint/learning/resources.mspx
Microsoft Developer Evangelist Lynn Langit:
https://blogs.msdn.com/socaldevgal/pages/sharepoint-2007-developer-resources.aspx
--
Update 19th May 2008 - I added a Microsoft Certified Partners for Learning Solutions training course. I also improved the code sample to better represent best practices for SharePoint memory management.
Comments
Anonymous
May 01, 2008
How do I get started working as a Professional Developer on SharePoint? Here's a brief outline of theAnonymous
May 04, 2008
Aunque cada vez es más difícil ponerse al día, sobre todo por la falta de tiempo, de vez en cuando consigoAnonymous
May 05, 2008
Body: I attended a great Information Management morning in Perth last week and bumped into a fair fewAnonymous
May 05, 2008
The comment has been removedAnonymous
May 10, 2008
Paul Andrew leads the SharePoint Developer Readiness effort at Microsoft. He recently wrote an excellentAnonymous
May 11, 2008
I'm being picky but your code sample is a great example of how to ignore exceptions and assuming the person running the sample (the developer) is an admin. You should always use a using statement (or try finally) to ensure proper disposal of the SPSite and SPWeb in case of exceptions. Accessing the AllWebs property will throw unless the caller has enough permissions. I think it's important that MS pays a lot of attention to the samples put out there. Especially since you emphasize security and resource usage in a lot of SharePoint articles. static void Main(string[] args) { // Update to your server name SPSite siteCollection = new SPSite("http://localhost"); // Will leak if ther's an exception SPWebCollection sites = siteCollection.AllWebs; // Will throw unless proper permissions Thanks /JonasAnonymous
May 12, 2008
Here's one of the best, most succinct lists of resources for SharePoint developers that I've seen thusAnonymous
May 12, 2008
Here's one of the best, most succinct lists of resources for SharePoint developers that I'veAnonymous
May 12, 2008
We have collected lots of additional ressources in our SharepointCommunity Wiki http://live.sharepointcommunity.de/wiki/Wiki-Seiten/Entwickler.aspx and http://live.sharepointcommunity.de/wiki/Wiki-Seiten/Entwicklung.aspxAnonymous
May 13, 2008
Entwicklung Getting Started with SharePoint Development von Paul Andrew dazu auch SharePoint CommunityAnonymous
May 19, 2008
Hi Jonas, Thanks for pointing out the coding improvements I should make. I added a using statement for the first allocation so that dispose will get called. For the second one, because the allocation is in a for statement I added a try..finally to ensure that dispose is called. I got this code reviewed by a few friends also before republishing. Regards, PaulAnonymous
May 26, 2008
I've been writing around the same sort of thing and read this and it got me thinking. I've posted some thoughts...be great to hear what you think: http://wss.made4the.net/archive/2008/05/26/solution-development-in-sharepoint-2007.aspxAnonymous
May 29, 2008
Thanks for showing us the way !!Anonymous
June 02, 2008
Some of my old readers would have noticed that I've stopped blogging for quite a while now. Thing inAnonymous
October 17, 2008
Successful deployment of SharePoint is no different than any other corporate strategy or project, only