Paul Andrew

Technical Product Manager for Office 365 at Microsoft

Getting Started with SharePoint Development

Getting Started with SharePoint Development

Rate This
  • Comments 15

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 GroupThe Great SharePoint Adventure
MindSharpDevelopers Guide to Windows SharePoint Services
AppDev - FREE Sample Microsoft SharePoint 2007 for Developers Training CD
Microsoft Certified Partners for Learning SolutionsAdvanced 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:

  1. 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.
  2. 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).
  3. Get the WSS SDK and the MOSS SDK. They are also available online for WSS and MOSS.
  4. 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.
  5. If you are on Windows Server 2008 then make sure you started Visual Studio by right click and run as administrator.
  6. Add a reference to Microsoft.SharePoint.dll (shown in references as Windows SharePoint Services)
  7. Add a using Microsoft.SharePoint
  8. Add this code:

        static void Main(string[] args)

        {

            // Update to your server name

            using (SPSite siteCollection = new SPSite("http://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.

http://msdn.microsoft.com/sharepoint - For WSS
http://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.
http://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:
http://www.microsoftelearning.com/catalog/developer.aspx#SharePoint

More developer resources here:
http://www.microsoft.com/sharepoint/learning/resources.mspx     

Microsoft Developer Evangelist Lynn Langit:
http://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.

  • How do I get started working as a Professional Developer on SharePoint? Here's a brief outline of the

  • Aunque cada vez es más difícil ponerse al día, sobre todo por la falta de tiempo, de vez en cuando consigo

  • Body: I attended a great Information Management morning in Perth last week and bumped into a fair few

  • Body: As a consequence of having a fairly high profile in the SharePoint Development community, I get

  • Paul Andrew leads the SharePoint Developer Readiness effort at Microsoft. He recently wrote an excellent

  • 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

    /Jonas

  • Here's one of the best, most succinct lists of resources for SharePoint developers that I've seen thus

  • Here's one of the best, most succinct lists of resources for SharePoint developers that I've

  • 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.aspx

  • Entwicklung Getting Started with SharePoint Development von Paul Andrew dazu auch SharePoint Community

  • 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,

    Paul

  • 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.aspx

  • Thanks for showing us the way !!

  • Some of my old readers would have noticed that I've stopped blogging for quite a while now. Thing in

  • Successful deployment of SharePoint is no different than any other corporate strategy or project, only

Page 1 of 1 (15 items)