SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm needing a hand deciding an approach to this. Here is the business requirement.

Create a Meeting Workspace which contains a Project Tasks List (OOTB) and fills it with "stub" tasks (such as "send invites") with deadlines relative to the date on which the Meeting takes place (such as "minus 2 weeks from Meeting").

These "Stub tasks" might be stored in a list somewhere in the parent Web, to allow customisation.

Site Templates can save list contents to the template, but you loose the relativity of the task dates.

I thought about creating a feature receiver to trigger when the site is provisioned, and programmatically enter the tasks, but in order to staple the feature to just a specific site template, I'd need to create a brand new Site Definition (derived from the MPS definition), which seems a fair bit of work for (what appears to be) such a simple requirement.

What other ways could I approach this without creating a new Site Definition?

share|improve this question
up vote 1 down vote accepted

This sounds like it could be solved with a custom provisioning provider. This would only require a new entry in a custom WEBTEMP.xml and some provisioning code that instantiates what you need.

See my links on the subject here

share|improve this answer
Thanks for that list of sites Anders. This might seem the easiest way to do it, as well as keeping the custom actions restricted to just a particular site template. – James Love Apr 30 '10 at 8:39
U can use CPP for finishing off configuration of your SC & sites (you can have CPP for both root and sub-site templates) without having to worry about race conditions. Specifically i use it to: set default page, apply web template, activate features, sub site creation restriction, page layout restriction, create (some) lists, create list items, enable audit, create sub sites, add & config web parts, config navigation, set regional settings, create groups. The tasks is carried out in the order mentioned and the provider is reused and fed an xml file (path specified in ProvisionData attribute). – Anders Rask Apr 30 '10 at 13:05

If you automate the creation of the sub site via a web part or other mechanism then you can populate the list from this same code after the site has been created.

Not sure if this fits your workflow, but it is probably the simplest approach.

share|improve this answer

An alternative would be to bundle everything into a web part that can trigger the data population and custom setup actions.

With that said, I would do the custom Site Def and feature receiver.

share|improve this answer

You don't need to staple your feature with a receiver, just create a plain ol receiver that creates your setup actions and then activate it on demand.

You could also make a custom action for the Project Tasks list, which makes the population.

share|improve this answer
The end users would most likely become forgetful about activating the "Fill Task List" feature, or fill the list out themselves. Plus, I'd only want this Feature (if I did it this way) only available to this particular Site Template. – James Love Apr 30 '10 at 8:38

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.