SharePoint 2007 – Org Chart Web Part Options

SharePoint 2007 provides the ability to view the profile of people within an organization and also to view a very basic organizational chart listing peers and subordinates.   I recently researched the options available for displaying a more advanced organizational chart and found there are several third-party web parts that provide this functionality for a fee, I also found a free option and also some sample code. 

At the SharePoint 2009 conference this year in Las Vegas I also saw a demonstration of a SilverLight web part that will provided as part of the SharePoint 2010 product that provide a really slick and interactive org chart interface (but you’ll have to wait for SharePoint 2010).  If you’re currently using SharePoint 2007, below are some good options for adding a better org chart to your site.

Third party Solutions

1OrgChart by ContentAndCode provides highly customizable org chart that is beautiful, especially if you store photos of your employees.  Some of the key features include:

  • Create organizational charts using information from User Profiles populated by Active Directory or another line-of-business applications
  • Online presence indicators allowing you to see when staff members are online and/or available.
  • Create organizational charts from a custom list
  • Create charts by organization, department or people
  • Decide which properties will be displayed
  • Decide the order in which properties will be displayed
  • Print charts as an image or to a printer
  • Expand/collapse branches in the chart
  • View personal profiles by clicking on a user name
  • Hide accounts that you do not want included in the charts
  • Search for people in the chart
  • Include or exclude photos from the chart
  • Limit the number of people to display in the charts
  • Automatically picks up the SharePoint site styles or theme
  • Turn on caching options to improve performance

SharePoint Org. Chart Web Part by KwizCom is a very nice solution at a very reasonable cost.  This web part isn’t as visually appealing as some of the other web parts but does provide a nice tree-view of the organization that other don’t provide.  It also has a nice pop-up window when you hover over an individual’s name, a nice touch.  Some of the key features include:

  • Hierarchical/flat view
  • Based on a standard Excel/XML file format, therefore enables easy integration with corporate HR system
  • Dynamically configurable view (you decide which columns should be displayed)
  • Textual & property-based filtering capabilities
  • Web part’s layout is fully customizable (CSS files and images)
  • Support filtering by URL parameters and by Web Part Connections

AA OrgChart by AASoftech is another low cost option which consists of three separate web parts.  The web parts work together to display organizational data in a tree view and also a searchable list view.  Some of the key features include:

  • Can directly connect to SharePoint User Profile on MOSS (SharePoint Server 2007)
  • Supports Multi Manager when connecting to SharePoint User Profile on MOSS (SharePoint Server 2007)
  • Can directly connect to SharePoint List
  • Supports XML data as input
  • Can also get data from SQL server, Access, Oracle, Excel, Text, SharePoint List, User profile or Active directory
  • Can lunch other application from the chart
  • Can display OrgChart in any Sort Order of the existing fields
  • Can display Query result (Employee Locator) in different styles
  • Can locate (Search) employee
  • Displays the Organization Hierarchy in Tree View as well as Chart View
  • Accepts Query string to browse the chart
  • Displays up to 11 data fields on "OrgChart" Web Part
  • Can browse the chart from specific Node

User Directory Web Part by Bamboo Solutions is an all-encompassing employee directory, employee search, organizational chart, and employee listing all wrapped up into a single web part that can be easily dropped onto any page in your site.  This is an amazing web part but if you’re simply looking for an organizational web part it may have (dare I say it) too much functionality.  The key features include:

  • View SharePoint and/or Active Directory users in a tree view structure
  • View and edit both Active Directory and SharePoint User Profile databases
  • Maintain and delegate security for profile updating to department level
  • Search for users by name or other metadata such as skill set, or user customized fields
  • Audit trail of changes to Active Directory
  • Maintain restriction on private and non-editable attributes
  • AJAX web part eliminates annoying post backs and enhances usability
  • Email notification when changes are made to profile database

Free Solutions

SimpleChart by ARB Security Solutions is a simplistic organizational chart displayed in a graphical manner.  This web part only accepts data from a SharePoint list, but with some creative thinking you can probably get your organizational data into a SharePoint list. 

Graphical Organizational Chart by Sue Hernandez is a set of fairly complete C# web part code using the Profile Manager and Google’s Org Chart API to display organization data in a nice graphical format.  She does a nice job of explaining the code and providing all the necessary pieces to build your own graphical display of your organizational chart. 

 

Feel free to comment if you find other solutions that you’d like to recommend.

SharePoint 2007 – Branding Your application.master Page

Most SharePoint administrators and developers are aware of the techniques for customizing the master page for a SharePoint site, so I am not going to go into detail on this topic.  However, I do want to share with you any easy technique I found for customizing the administrative pages on a SharePoint using the application.master file.

A quick background on administrative pages vs. regular SharePoint pages:  Most content pages that you create within a SharePoint site are stored within the content database and are easily styled using a custom master page and style sheet specified on the site settings page.  These pages typically consist of web part pages, home pages, and other pages you create to display SharePoint content, these pages inherit the master page and CSS settings that you specify in the site settings of your SharePoint site.

The other types of pages that you see within SharePoint pages are called “administrative pages” or “application pages”.  Those pages are supplied by Microsoft as part of the SharePoint installation and are used to configure and administer your SharePoint site, these pages are NOT stored in the content database and are instead stored on the file system in the _Layouts directory (typically this is C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\Layouts ).   Another important difference between these two types of pages is that all the styling of administrative pages is specified in a single master page named “application.master” which is stored on the file system in the _Layouts folder. 

One very important note about the styling of administrative pages using the application.master is that each SharePoint farm can only have one application.master file in the _Layouts folder, which typically means that ALL your administrative pages across your entire SharePoint farm must share the same styling.  This can present a design challenge if you are a SharePoint administrator and you are asked to have different styling for different sites and site collections within the same SharePoint farm AND you need the administrative pages to be styled consistently with those sites and site collections.  In a future post I will present some options on how to address this limitation.

Back to the easy technique for branding (styling) your application.master page.  Standard master pages and the application.master file are generally the same but do have some very slight differences.  You cannot simply copy your regular master page content into the application.master file and expect everything in SharePoint to work perfectly, they are not 100% compatible.  However, you can take your regular master page and tweak it (with little effort) to use as your application.master file.  Below is an outline of the “tweaks” that need to be made

Tweak 1.  Application.master files should not contain the delegate control for the SmallSearchInputBox.  You can simply remove the following reference from your master page:

                        <SharePoint:DelegateControl runat="server" ControlId="SmallSearchInputBox"/>

Thus far I’ve only found that this one “tweak” or change needs to be made to a master page in order to use it as your application.master page.  If you find that there are other required tweaks, please pass those along to me so that I can update my post.

SharePoint 2007 – Development Tip: Use Virtual PC for SharePoint Development

Many of you may know that I’m a huge fan and user of Virtual PC and Virtual Server for development purposes, specifically SharePoint development. Both Virtual PC and Virtual Server are Microsoft Products and both are free to use and provide big advantages when developing solutions for SharePoint 2007.  When a server instance has been vitrualized it is referred to as the “Guest” operating system and is often called the “Virtual Machine” or “VM”.  The “Host” system is the physical computer that runs the Virtual PC or Virtual Server software and has the ability to host multiple guest virtual machines (VMs).  Now with the VM hosting role built into Windows 2008 Server and the Hyper-V technology, scalable virtualization is built right into the Windows operating system.

Some of the biggest advantages to doing development within a VM are:

1.  The host machine and guest VMs can be running different operating systems, they can even be running different processor types (32 bit vs 64 bit)  I typically do development on laptop running Windows Vista Business and run Virtual PC to run guest operating systems like Windows 2003 Server.

2.  Once you have a library of “base” VMs you can quickly and easily spin-up a new VM and customize it. 

3.  VMs run in a an isolated environment so you can create virtual environments or virtual networks to simulate different networking and SharePoint farm topologies.

4.  VMs are stored within a single file which makes them much more portable.  This allows you to quickly move them from one host to another host with ease.

I’ve been using virtualization exclusively for software development for about two years now. Sure, there’s a slight performance hit, but you can’t beet the flexibility you gain from having one (or more) isolated development environments. Before I started using Virtual PC, it was common for me to be wiping my laptop once every 4 to 6 months. Now, since I don’t run any development tool software on my host OS, it’s rare that I have to rebuild my host machine. And, of course, creating new virtual PC’s is a snap.  The following article is written as a guide to getting the most out of doing SharePoint development work using virtual machines.

1. Create a Library of Virtual Machine Images

In order to quickly create development environments I have created “base” VM images and preconfigured environments.  With disk space being as cheap as it is today do not be afraid to create many different VMs.  My base VM include : Windows 2003 Standard, Windows 2008 Enterprise, Windows 2008 Enterprise R2, etc.  My preconfigured SharePoint environments include: MOSS 2007 RTM running on SQL Server 2005, MOSS 2007 SRTM running on SQL Server 2005 SP2, MOSS 2007 SP1 running on SQL Server 2000, WSS3.0 running on SQL Server 2005 Express, etc.  You get the point.

2. Create Virtual Machine Images with Development Tools

Another huge time saving tip is to create full blown development environment VMs that have all your standard development tools installed and configured.   Be sure to save a copy of the development environment VM as a “base” so that you can quickly spin-up a new one for your next project.   Some of the tools I have installed on my common development environment VMs include: Visual Studio 2008, SharePoint Designer 2007, Visual Studio Extensions for Visual Studio 2008, WSPBuilder, STSDEV, etc.

2. New Image for Each Project

One of my favorite tips is to create a new VM for each project that I work on.  I work with many different clients at a time and each of my clients has a different variation of MOSS software installed (SQL versions, OS versions, MOSS service packs and patches, etc) so I like to create a new VM for each client project that matches their exact environment.  I’ve found this to be extremely useful when trying to debug an issue for a client because I can quickly recreate the issue on my VM that matches their environment.

3. Use External USB Drive and have plenty of RAM

The best performance mix I’ve found comes from running my VMs from an external USB Hard Drive so that the operating system on the guest VM and the host PC don’t compete for disk.  I’ve also found that having more than 3GB of RAM on my host machines is best, I typically give allow my guest VMs to have about 1.5GB of RAM which leaves 1.5GB of RAM for my host machine.  You may find that you can get away with only 2GB or RAM on your hosting computer if you are running WindowsXP but I typically run Windows Vista on my computers so I like to have 3GB of RAM.  Note: 3GB or RAM is the minimum I recommend, if you want to host multiple VMs on a single host computer you’ll more than 3GB.

 

Additional Information and Links

Instructions for configuring a SharePoint 2007 development environment

http://msdn2.microsoft.com/en-us/library/bb330848.aspx

Microsoft Windows 2008 Server with Hyper-V

http://www.microsoft.com/windowsserver2008/en/us/hyperv.aspx