Starting custom SharePoint development with MOSS 2007
MOSS 2007 has been developed completely using the .NET Framework 2.0. This is as clear as rain, since the list of pre-requisites begins with the .NET 2.0 redistributable. Given this dependency, MOSS 2007 interacts by nature with Visual Studio .NET 2005. There are multiple variants of the VS2005 and all are equally capable of talking with MOSS. So, the primary requirement for beginning MOSS development is having some variant of VS 2005 installed on the dev box. As with v2, there are hacks to separate the server and the dev box, but more on this later.
Once you ahve this installed, you are ready to begin custom development. Due to the enormity of the new product as well as due to the way the product is structured, there are a whole bunch of assemblies that crop up in the "Add Reference" dialog. These assemblies have gone through some changes over the beta cycle and it does look like there are going to be more changes in the offing as we march towards RTM.
A quick look at the Add Reference dialog:
Of the whole list of assemblies, these are the assemblies that are of interest. What does each of these do?
Microsoft.SharePoint.Publishing - This is the Publishing DLL as the name suggests. Functionality embedded here is brought on from CMS 2002 as well as some new functionality for Portals.
Microsoft.Office.Server - this DLL is available only with MOSS and will not be available with WSS. Includes overlapping functionality with Microsoft.SharePoint.dll but with some refinement. Also includes functionality specific to MOSS such as BDC, reports, etc.
Microsoft.Office.Policy/Microsoft.Office.Workflow - these refer to the Document Life Cycle part of the story with functionality for document management and workflows.
Microsoft.SharePoint.Search - this is the Search functionality corresponding to WSS Search.
Microsoft.SharePoint.* - traditional namespaces from v2 with added classes and method references.
The kind of projects that can be created remain much the same.
Windows Applications/Class libraries etc can be used in case of standalone apps that talk with the SharePoint OM. Though these need to be residing on the server after deployment incase of OM calls. These can alternatively use web service references and reside on client boxes.
Web applications, can be deployed on the server and can use the direct references as usual. These can also be deployed on other boxes and talk to the server using OOB/custom web services.
As of now there are no web part templates available for VS as they were for v2. But we are getting there and you should see some developments in that area.