Create Site Definition With List Instance in SharePoint 2013

Create Site Definition with List Instance

In this article I provide a practical example as in the following:

  1. You need to create a Site Definition
  2. When the user creates a new site from this Site Definition, a new List Instance is also created

What is the Solution?

We can have any of the following solutions for this:

  1. Use Feature Stapling
  2. Use Event Handler
  3. Use Site Definition

I would recommend the third approach since it is the shortest path.

Procedure

Use the following procedure for the solution:

  1. Create SharePoint Solution Project
  2. Create Site Definition
  3. Create List Definition
  4. Include List in Site Definition
  5. Deploy
  6. Test

Step 1: Create a SharePoint Solution Project

Run Visual Studio 2012 and create a new SharePoint project.

Site Definition with List Instance

Choose the Farm Solution option as in the following:

Site Definition with List Instance

Step 2: Create Site Definition

Choose the Solution then select "Add new item" > "Site Definition" as in the following:

Site Definition with List Instance

Enter a name for the site definition.

Step 3: Create List Definition

"Add a new item" > "List" as in the following:

Site Definition with List Instance

Enter a name for the list instance. Choose the option custom and click the Next button of the wizard.

(The custom option allows you to create new fields, view fields and so on.)

Site Definition with List Instance

Click the Finish button and in the page that appears enter some unique fields for the list.

Site Definition with List Instance

Step 4: Include List in Site Definition

Open the onet.xml of Site Definition and Reference the list from it.

Site Definition with List Instance

You need to use the correct Template Id and Feature Id for it.

Site Definition with List Instance

For finding the feature id, open the Features then select "Feature 1" > ".feature file" then find the GUID against the featureId.

Site Definition with List Instance

Step 5: Deploy

Build and Deploy the solution.

Now you are ready to test the Site Definition.

Step 6: Test

Open the browser then select "Open SharePoint site" > "Site Contents" > "New Sub site".

Site Definition with List Instance

After creating the site go to the Site Contents and you can see the List Instance there.

Site Definition with List Instance

This concludes our Site Definition with List Instance creation.

Site Definition with List Instance

A good read for Site Definition vs. Site Templates

link

References

http://msdn.microsoft.com/en-us/library/ee231576.aspx

Summary

In this article we explored a practical scenario of Site Definition creation with List Instance. The source code is associated with this article.