I was lucky enough to take a SharePoint development class with Ted Pattison almost a year ago. Unfortunately, I haven't developed
much anything with WSS or MOSS since then. I did retain some concepts and knew what I wanted to achieve, but it's not as simple as opening up Visual Studio 2008, dragging a web part onto a surface, and hitting F5. I thought I would link to some resources that I found invaluable.
Getting Started Resources
It's true that you can quickly leverage your existing ASP.NET development skills to develop for SharePoint technologies, no doubt about it. The gotchas are trying to figure out where to jump in and start applying those skills.
I found it difficult to locate information on how to get started. I guess I am spoiled by http://www.asp.net, I wanted a set of articles and simple walkthroughs on how to get started customizing SharePoint. Fortunately, such a resource exists on MSDN's Windows SharePoint Services 3.0 Visual How To's.
Using .NET 3.5 in WSS or MOSS
I have been spoiled for the past year or so working exclusively with Visual Studio 2008 and have come to heavily rely on C# 3.0 syntax features (automatic properties) as well as stuff like LINQ, Workflow Services, and ASP.NET AJAX. By default, WSS and MOSS using .NET 2.0. If you go to IIS and try to force the application pool to run in .NET 3.5, you'll see that there is no drop down for 3.5... only 2.0. Remember that 3.5 is just an addition over top of the core 2.0 CLR. To enable WSS and MOSS to use 3.5 assemblies, head over to CodeProject for instructions on how to modify web.config to use .NET 3.5.
The 12 Hive
Watching one of the excellent videos from the STSDEV site, I heard Ted mention something about the 12 hive. Oh yeah, I remember from his training class that he uses a specific file structure that mirrors SharePoint's, making dev and deployment much easier. SharePoint
hides stores most of the customizations that you will make in a directory known as the 12 Hive. Now where the heck is the 12 hive? Fortunately, I came across Cornelius J. van Dyk's SharePoint Brain Dump where he documents its location.
C:\Program Files\Common Files\microsoft shared\Web Server Extensions\12
Once I learned the term "12 hive", I was able to turn up all kinds of interesting tips.
Once you learn a little about how to do things, you will quickly see that there are areas of opportunity for making life easier. For instance, wouldn't it be great if you could just build your project and it automatically do all the stsadm command line stuff for you? Wouldn't it be great if there were project templates already set up to do things like web parts and features? There's a great CodePlex project called STSDEV that provides exactly that. It's a great utility that should be essential for anyone trying to customize WSS or MOSS. Even better, there are some great videos sitting on the releases page for STSDEV that show how to build a feature or a web part to help you get started.
As great as STSDEV is, it can't hide the fact that a lot of SharePoint development requires that you work with CAML. Creating the features.xml file requires that you understand how to use CAML to create features.
I hope this helps others who are starting into SharePoint development. It's fun to work with, and really is like building a 90 story building and starting on the 65th floor since so much has already been done for you. I didn't come up with that quote, and I really wish I could find who did, because it's dead-on accurate.