It seems every time I talk to another developer about SharePoint, the second I mention SharePoint Designer (SPD) I get a sideways look and told "I won't use FrontPage". First off, Expression blend is FrontPage; SharePoint Designer is a tool to modify and enhance SharePoint. Hopefully reading the rest of this post will motivate you to install it (or open it) and give it a good ole' fashion thrashing... not too hard, it has a tenancy to break every now and then...
The list below isn't wholly features of SPD, it includes spin-offs that have come in handy for myself and others using it.
I have ordered this list from what I think are its great features, to the best features... in terms of how it helps me when tinkering with SharePoint.
1. Let Technical BA's and Power Users do their stuff
I wasn't sure whether to put this in the number one position or ten, but it made it to one... I am developer, I enjoy chunking through code and not doing workflow and page modifications that don't include at least one line of VB. Getting a technical analyst trained up in SPD will save a lot of time for everyone. For example, say a client asks for modifications in a workshop, the analyst can do these on the fly, fantastic! This tool is aimed at those sort of power users, so let them go for it!
2. The DataView Web Part
This is my favourite feature of SPD. It takes all of two minutes to get a DataView Web Part on your page and linked up to a data source. Creating custom views and filtering information from around the site is simple using this feature. If a project manager has ever asked you to give them a summary of all their outstanding tasks across all their projects, then the DataView Web Part will help a lot!
Dataview Web Parts use XSLT to render the data. Looking back at point one, there are some things BA's can't do, one of those is tweaking the XSLT... the DataView Web Part offers an extension (ddwrt namespace) that helps a bit, but there is always something that will need some customisation.
3. ASPX Page Editing
Have you ever tried to edit SharePoint ASPX pages in Visual Studio? If you need to make changes to the look and feel of a page, then SPD is the only tool to use. If you are creating a feature, you wouldn't use SPD to create the sites/lists etc. but to modify existing pages, SPD is great! Another advantage of SPD over Visual Studio is the preview... Visual Studio doesn't give you a preview of the page when it is up on the site, SPD does. In saying that, you can copy the ASPX code from VS and paste it into SPD to see how it looks.
4. Branding SharePoint Sites
This isn't a feature as such, but it is something that is near impossible without SPD. Modifying your "companyPage.master" is simple in SPD, it gives you a great preview, all the controls SharePoint controls in a menu (see image) ready to drag on and use.
Editing your corporate style sheet and seeing the results straight away is another bonus of SPD. Doing it the hard way would mean changing it in an editor of choice, uploading it to the 12 hive, refreshing the APP pool and then the browser... SPD seems a lot easier!
5. Workflow Designer
As I said in point one, getting some of the workflows completed by a BA will help the progress of the project to no end. Of course, there are limitations to the sort of things the SPD workflow designer can do, anything that needs some custom coding will have to go to the developers. All in all the workflow designer in SPD is a great tool for getting a workflow out and working!
6. SP Datasource
Out of the top five, but only just! This is an easy way to connect to any number of data sources, not just SharePoint.
A few Examples:
- SharePoint Lists
- SharePoint Libraries
- Other Databases
- XML Files
- Linked sources
- BDC (If you are running the enterprise version of MOSS,
see my post on the differences between WSS and MOSS for details)
- Web Services (SharePoint or Other), see the image for an example of output data
One of the really cool data sources is the Linked sources data source. The can pull together any number of other data sources and give you a sing source, great for roll ups from multiple sites.
SP Datasource can be used by a DataView Web Part OR be dragged onto your page as a normal ASP.NET data source and consumed by any of the standard ASP.NET controls. For example, if you wanted a drop-down list that looks to an active issues list: connect to that list, filter the list showing only active and drag the data source onto the page, that easy!
7. Custom List Forms
Much like the SP Datasource, this is something that is a must for anyone checking out SPD to have a look at. If you want to customise any list, survey, etc. within SharePoint, you will need to use this feature. This is a great thing if you want to add some additional information to a list form, change the way titles
are displayed, or generally mess with a form.
8. Site Connectivity
Using SPD to connect to a SharePoint site opens up a whole bunch of interesting places you wouldn't have known about unless you went for a hunt through the database and 12 hive. Opening a site in SPD shows all the master page and css files that give the site its look and feel (see the image to the left). You can view all the sites and lists within the folder list.
9. Client Application
The fact that SPD is a client application that can connect to SharePoint is great! There is no need to install a virtual server to do development work, it sits on a normal PC and connects to the deployment without issue.
10. Import/Export
And finally in the tenth position the ability to export and import sites to either a SharePoint site template or a Personal Web Package. Makes it very easy to move something from a development environment to testing, without having to create a whole bunch of XML and config files. This feature is great for moving something like a Wiki from one site to another, without losing the links!
Hopefully that gives you enough to break out the Office disk and put SharePoint Designer on your machine! If you have any comments or other reasons why SharePoint Designer is a cool product, please submit a comment!