For the most part, if you want to be a SharePoint Developer, you must first be an ASP .NET developer who is comfortable in Visual Studio and then you build the SharePoint development skills on top of this ASP .NET base. Yes, you could just use SharePoint Designer and do a load of custom "development" without ever touching Visual Studio or .NET code, in this case we recommend that you have a good HTML and XSLT base knowledge for maximum gain. In our mind you need to be able to do both to be a complete SharePoint developer.
Let's try and understand all the things that a SharePoint developer could do on SharePoint (and then we will cover how to get there). This is so you can understand what activities you need to be able to do to call yourself a SharePoint Developer. The items closer to the top of the list are arguably the more common scenarios i.e. Make sure you can do the top stuff in the list before the bottom stuff:
SharePoint Designer "Development"
- Add, use and customize the DataView Web Part
- Assemble workflows
- Branding and Style (we are going to ignore this for this article, and reference in a separate branding article)
- Master Pages
- Styles for Content Query Web Part and Summary Link Web Part
.NET Development
- Develop Web Parts
- Develop Features (this includes list definitions, site definitions, etc.)
- Develop List Event Handlers
- Develop Workflow
How to get skilled in Office SharePoint Designer for those typical activities?
SharePoint Designer is a powerful tool which can customise SharePoint sites without having to write .NET code through Visual Studio. Too often traditional developers code something up in Visual Studio when they could have done it with far less effort in SharePoint Designer. However, just as you can break a SharePoint site with dodgy code you can break a SharePoint site with some dodgy actions in SharePoint Designer.
Base knowledge before you get going?
Before learning SharePoint Designer "stuff", you need to have a sound knowledge of how to "customise" SharePoint through a web browser. You should have a good understanding of lists, custom lists, web parts and web part properties, connected web parts. Basically you need to have power user SharePoint skills.
To get maximum benefit from SharePoint Designer (except for workflow scenarios), you should have good HTML, CSS and XSLT skills. Yes, even though you don't have to have these skills, it will make your life MUCH easier.
Okay, I have the base knowledge, where can I learn the core stuff?
- Introduction to SharePoint Designer
- Introduction to SharePoint Designer 2007 (downloadable web cast)
- Introduction to building applications with SharePoint Designer 2007 (online document)
- Overview of features in SharePoint Designer
- Building collaborative solutions using SharePoint Designer 2007 (downloadable web cast)
- DataView (DataForm) Web Part
- Customise a list view using Data Form web part in SharePoint Designer 2007
- Create Simple Workflow in SharePoint Designer
- Introduction to workflows in SharePoint Desingner 2007 (online document)
Other recommend SharePoint Designer resources for on-going learning
- SharePoint Designer Team Blog
How to get skilled as a SharePoint .NET Developer for those typical activities?
Most SharePoint development that falls outside of SharePoint Designer is done using Visual Studio (2003, 2005 or 2008). Yes, there are some things that could be done without Visual Studio e.g. Create XML based feature, but it safe to assume that you need VS.
Base knowledge before you get going?
Most of the SharePoint .NET development requires you to have a good understanding of ASP .NET. You really cannot be a SharePoint developer without first having the base ASP .NET skills. You would typically at least have to know how to develop a user control, server control (using CreateChildControls and Render Methods), how to debug an ASP .NET application, understand purpose and structure of web.config, know about http modules, good HTML knowledge and do base .NET stuff like databinding, consuming web services, inheritances etc.
Once you have a sound knowledge in this space, then you need sound knowledge of how to "customise" SharePoint through a web browser. You should have a good understanding of lists, custom lists, web parts and web part properties, connected web parts. Basically you need to have power user SharePoint skills.
It is recommended to get the base SharePoint Designer knowledge too as this stage, because without this you might end up developing something from scratch that could be done in SharePoint Designer.
Okay, I have the base knowledge, where can I learn the core stuff?
You have 2 options when in comes to developing code for SharePoint, either you assemble it all from scratch yourself in Visual Studio e.g. Create empty class, add inheritance, develop code, manually deploy and test. Or, you can download the Visual Studio Extensions for SharePoint, which add extra project types inside Visual Studio for you, so you essentially have starter templates. The choice is yours. Depending who you speak to you will get a different answer as to which option is best. Understand that if you choose to use the Visual Studio Extensions, something's will be done for you, which saves time, but might hide "stuff" that you would like to know about in order to understand the core stuff better.
- Develop a hello world web part
- How to build hello world web part (online document)
- How to build hello world web part (10 min downloadable web cast)
- How to debug Web Part
- How to debug a web part in Visual Studio
- Add SharePoint API code to the web part
- Introduction to SharePoint Developer (downloadable web cast)
- Develop a hello world feature
- Introduction to features in SharePoint (10min downloadable web cast)
- Develop a hello world event handler
- Introduction to event handler in SharePoint (10min downloadable web cast)
- Site Definitions, Schema's etc
Resource Centres and SDK documentation:
-
-
-
-
-
Other general tips:
- Best Practise: Dispose your SharePoint object properly
- Best Practise: Common SharePoint coding issues
- You don't need to add your web part assemblies to GAC and strongly name them. You just add to local bin folder of IIS site. This is an easier development model because you won't need to worry about the admin involved in GAC and strong name, and to replace existing assembly is easy, no IISReset etc required.