A document repository by any other name is still… well… just a list…

So this is not so much technical as it is theoretical, but for requests I've gotten, here is a brief on SharePoint Lists. 

Everything in SharePoint (WSS, MOSS, MSS, etc) is a list.  This goes from a document lirbary to a publishing web part page library to a custom list, to the galleries that hold master pages and web parts, to the very site security that allows people to access or not access your content.  This is done in a very OO method, where all of these items inherit basic list functionality.  Many of these also add additional functionality through the SharePoint object model. 

A simple example is the custom list.  This is a list that starts out as just the basic require modified and modified by columns, along with a "name" column. You can add to this just about anything you can think of, either through the standard field types (text, multi-line text, hyper-link, file, etc.) or through site columns.  If you haven't experimented with site columns, check them out…  They are quite cool and give you the ability to create a field that is completely reusable.  I usually make a meta-data or "tag" site column on all my sites, to make it easy to add tagging or meta-data searches to my lists.  Ted Pattison actually has a few great resources available for download, like this screencast on Site Columns.

You can also extend existing list templates, like the task or document library lists. Go to any list and select Settings, List (or Library) Settings.  You'll get a similar screen each time, listing general settings and permissions options, as well as a list of Columns and Views. This is where you can modify or add (or remove) columns.  You can use this to add additional options to your list, like meta-data.  If you have a task list, you can add fields for things like estimated cost, or project codes. If you have a calendar, you can add a column for classification or category.  This changes the built-in templates for lists from limited examples, to jumping-off points for customized anything-you-wants.

Another example of this is the security list.  This is a list of individuals and their access for your site.  You can see some of the system-level activities (and a few screen shots) of in a previous post of mine about the behavior of My SharePoint Sites.  The gist of this is that if you go to the user information page of a root site collection (that's the "people" section of the people and groups admin pages), you can actually select "List Settings" just like any other list, and see the settings for the user list.  You can, in fact, even add columns to the user list, such as meta data or notes.  This could also include mapping extension information for programmatic user cross-matching to alternate data sources by user identity.

Another things that is great is that the list object in SharePoint inherits the ability to have a workflow attached to it.  That means that it is not just document library that benifit, as they are commonly thought of as the target when we talk about workflows.  You can even attach workflows to the user security lists.

Also, all lists of any sort can be saved as templates (stp files) with or without content in your template gallery (which, by the way, is another list).  This automatically adds that custom list to the appropriate category on the "create" page.  For those willing to adventure a bit farther in to the mirk, there is Content Types.  You can find a great post on the concept behind Content Types (I like to call it the Content Type is to Lists post) at John Holiday's blog.

So what does this all mean?  I'll say it again… Everything in SharePoint is a list.  Understand that and what it implies to the platform, and you take a big jump forward in understanding how you can make SharePoint do whatever it is you want it to. 

Leave a Reply