I considered titling this post "The Grand Unifying Theory of SharePoint Sites", but it just sounds too lofty...
A concept that has really helped me understand how sites in SharePoint work is the fact that just about everything within a site can be considered as a part of a List. Consider the following:
-
Document Libraries: viewable as a list of document files
-
Subsites: viewable as a list of sites created beneath the current site
-
Web Parts: viewable as a list of the web parts on the page
-
Users: viewable as a list of names and permissions
-
Discussion threads: viewable as a list of posts
Now, I realize that each of these items really are diverse and that as a user we can do a lot of different things with them. But they all inherit some structural and organizational behaviors from the basic SharePoint list. Each of them can contain one to many items (I know, big revelation there). They present similar user interfaces for adding new elements to the list, and they do the same for removing new elements from them.
For example, do you know how to open the Web Part Maintenance Page for any webpage in SharePoint? Simply append
?contents=1
at the end of any SharePoint URL and click the Go button in your browser. You'll see a page which lists each of the web parts on the previous web page, data about each of the web parts, and some options at the top of the list. From this page you'll be able to Close, Reset, or Delete any of those web parts in the list. And you may notice that the page looks very similar to a standard list view for a document library or links listing.
Understanding that pretty much everything within a SharePoint site is going to be an item in one list or another has really helped me start to see how things relate to one another and get a feel for a site's hierarchy.
NOTE: the Web Part Maintenance Page is a handy thing to know if you have a web part that is throwing an error and causing an entire page to show up as an error in your browser. You may notice that you can't easily edit remove the web part since the Site Actions menu option isn't shown when the page throws an error. You can get around that by adding
?contents=1
to the end of the .aspx in your URL and take the offending web part off your page.