We continue our series of useful tips and common development scenarios for SharePoint Managed Metadata with an article that shows how to declaratively provision a taxonomy field and how to connect it with an existing term set. It’s a follow up of Programmatically Import Term Set into Managed Metadata Term Store where we explained in details how to import a term set into the Managed Metadata term store.
The current sample uses the Company Enterprise Industry Taxonomy term set that we created in the previous post, so today we will not spend time explaining how to create a term set.
Define Taxonomy Fields in CAML
The creation of a field definition of the taxonomy type in SharePoint is a bit different than that of other field types. The main difference is that we actually need two fields – one field is assigned type TaxonomyFieldType and the other is of type Note.
This post is a sequel to the article Deploying Publishing Page Layouts and Pages Using Features in which we examined the step-by-step process of deploying publishing pages based on a page layout using SharePoint features. As we saw, apart from a few caveats, that approach was quite straightforward and beneficial, allowing us to easily move a solution between environments.
However, the previous solution had one disadvantage – the page layout and the publishing page itself were deployed within the same feature. While this works for our small sample, it is not the cleanest approach for a real-life project.
In an end-user solution it is better to package page layouts in one feature and publishing pages in another. This way we are able to deploy content separately to development or QA environments for testing purposes and a clean solution without content to production.
In the end we would like to re-structure the solution to look like this:
In this post we go through the step-by-step process of creating a SharePoint solution that deploys a publishing page layout and a publishing page for press releases. Provisioning page layouts and pages using features and solution packages (*.wsp) allows for improved code reuse and makes it easier to move the solution between environments (development, testing, staging, and production).
As a matter of fact, there are already quite a few examples on the web that cover the topic of creating a SharePoint 2010 publishing page layout in Visual Studio 2010. One particularly good article is posted from Becky Bertram on her blog here.
However, in a recent project of ours, we also needed to deploy publishing pages together with the page layout, and after coming up with the solution, we decided to share our experience. The SharePoint Developer Tools in Visual Studio 2010 do not include specific project item templates for doing this, but it can be achieved using the module item template.
Here is how our solution will look like when we are done:
Please note that in order to successfully deploy the solution the target SharePoint site should be a publishing site.
Managed Metadata is one the great new features introduced in SharePoint 2010. That’s why we decided to write a series of articles describing some common scenarios that could be useful in practice.
Our first article will demonstrate how to programmatically import a term set defined in a csv file.
Creating term sets and terms using the browser is very straightforward using the Term Store Management Tool in Central Administration. However, there are some cases when we are required to programmatically create a term set by importing a csv file with terms into the Managed Metadata term store in SharePoint 2010.
In the following walkthrough we show how to create a valid csv file with term sets. Then we take a look at some of the key steps of building a SharePoint farm solution that imports the csv file into the Managed Metadata term store using the standard SharePoint Server 2010 API.
Prepare the CSV Term Store File
Let’s start with showing how to create the csv file with the managed metadata we want to import.
The import process requires a file with the .csv extension formatted a specific way. For details on this format, see the following TechNet article. Even after reading through all the details on the format though, building the file from scratch could be quite tedious and time-consuming. The good news is that there is a much easier way to accomplish this task – by using the great macro enabled template created by Wictor Wilén in his article Create SharePoint 2010 Managed Metadata with Excel 2010.
Once we download the template, we click on the Create New Term Store Sheet ribbon button located in SharePoint 2010 group. This will open a new sheet in Excel where we can enter our term set information. After the information is in place, we click on the Create Term Store File ribbon button. This saves the sheet data as a .txt file and we manually change the file extension to .csv.