Today in the latest addition to the SharePoint for Developers webcast series I'm going to be covering what's involved in customizing a portal to fit our needs. Our project will be to build out portions of the new www.BenkoTIPS.com to provide the ability to search for webcasts by series and by presenter. This will take advantage of the Data View Web Part that we will access in SharePoint Designer, and I'll show how to link together multiple lists. We'll also cover master pages briefly and show how we can use either the built in master pages or create our own.
Some terminology that is useful in understanding customization in SharePoint is having a grounding on the differences between sites, pages, lists and document libaries. The following is the definitions we'll work from in today's webcast (courtesy of my good friend Phillip Wheat)
- List – the basis of all things SharePoint. Consider this a database table that you can dynamically add tables to, and you won’t be far off conceptually. Benefits to using SharePoint Lists – CRUD UI is already created for you (but you can customize what’s been created), mobile and RSS enablement (in 2007), audit, item level permissions, content types, and workflow are all available out of the box.
- Document Library – A customized type of List that is focused on storing single files with metadata. This is using the same storage as regular lists, but the UI is tweaked to focus more on the file system type experience. One key factor – general list types can have more than one file associated with each item, Document Libraries are limited to a single file per list item. Templates can be associated with each content type in a Document Library to enable starting documents from a known state.
- Page – Basically an ASPX page contained inside of SharePoint. This is a UI element and can contain static or dynamic content. The most common type of page found on most SharePoint implementations are Web Part Pages which allow the user to manage shared or personalized content on the page and expose data that is stored in that site or site collection. Most pages consist of a standard Master page assigned by the SharePoint infrastructure, and a content area in which the users can interact with their data.
- Site – This is the container that everything resides in. It’s a logical storage location – which sits under another storage called a Site Collection. Users often confuse sites with pages, but a site can contain multiple pages and have the ability to store additional data and functionality which may not be visible to the end user (things like reusable content galleries, web part galleries, the master page and style sheet galleries, etc.) Sites are generally of interest to end users only for two reasons – scope for content (it’s more difficult to pass information between site collections than between just sites) and that the base URL for the pages comes from the site.
- Page Layout – This is new to SharePoint 2007, it came in with the web content management functionality. Think of this as a way to custom format information stored in a special type of list. This list can contain text content, images, reusable content, in general anything you can put in a standard list template. But instead of having to customize how that information is formatted for one usage, you can select (or create) different Page Layout templates which identify where each of your columns should appear on that rendered page. This provides the ability to put dynamic content in a fairly static rendering model so that formatting can change with very little effort, and where multiple templates can be used for different periods or usages of that data. The same thing can be done with customized AllItems.aspx pages, but this is much easier and maintainable.
Some links that may be useful to todays webcast include:
- MSDN: Customizing and Branding SharePoint Sites
- SharePoint Designer Team Blog
- SharePoint Site Templates
Next week we look at Membership & Authentication and how to set up Forms Based Authentication for our SharePoint site. We'll also see how to create a custom membership provider and have some fun with that.
Hope you can join us!