I've been busy this week with a new project called LCMv2. If you remember, Joel Oleson and Bill Bear posted a governance solution called Site Life Cycle Management a while ago on CodePlex. MS IT use this solution to do the following:
Microsoft IT Team Site Life Cycle Management is a custom Microsoft solution that provides lifecycle management for Windows SharePoint Services site collections through write locking, back up to disk.
The MSIT SLCM tool helps you by "arching" (backup/delete) unused sites and automating the notification process of pinging owners on sites that are not in use. A site collection is used to administer the settings and configuration for the Site Life Cycle Management process.
Now the customer where I'm currently working requested such a feature. So I downloaded and installed it on our development environment to see if it worked and more importantly how it worked since the customer also had some extra requirements like : give us a report that tells us how many sites are using the Enterprise features, how many sitecollections are in each webapplication, how many MySites are there and more analytical stuff like that.
So I downloaded the source code and the first thing I was particularly interested in was the EventReceiver. So I went in the folder and opened up the DeleteEventReceiver.cs file and while browsing the code the following caught my attention :
Then I scrolled up again and noticed that the source code was dated in November 2006 .. just shortly after the launch of our beloved 2007 version. So that's probably the reason why the new classes like SPFarm and SPWebApplication weren't used. After seeing this and other things like the custom Windows Service (why not use a custom TimerJob) and the separate creation of a sitecollection to configure the LCM (why not use a propertybag to store data and use a custom .aspx page in the Central Admin to configure) I decided to recreate and extend this solution!
So things to do are :
- Create an application page to configure LCM settings
- Modify the EventReceiver to make use of the new OM
- While deleting, store information about the site (date of deletion, name of backup file, size of site)
- Create a custom timer job to gather all the information of all the webapplications and it's sitecollections
- Create an application page to get an overview of all the gathered information
- Get an overview of unused sites
- Get an overview of sites / webs with enterprise features enabled
- Get an overview of how many sites per webapplications are in the farm
- Get an overview of all the mysites
- Get an overview of all unique active users on the farm
- Create a subweb to store rich information about all the gathered information within the CA
And while we are at it.. store the custom webparts (already built) that displays the following information in there as well :
- For a given user, show what his or her rights are on each sitecollection and webs
- For a given site/web, show what all the rights are per user per list/document library
Think it makes sense to redevelop the whole tool to be a. supported when we upgrade to the next version and b. make it more fancy by using 2007 techniques. I got 75% covered already this week.. so expect to see the final version and the post on 'How we dit it' very soon (prolly within a week after the SharePoint conference)