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?


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

  • 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.


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.


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.

  • 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 clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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