TDS Support

We typically have 3 environments going for a given project: dev (individual developer machines), QA (hosted in our office and accessible by clients), and production. We have source control and a continuous integration server. When developers commit code, the continuous integration server builds the project and deploys to the QA site. In this scenario, a new developer would set up a clean Sitecore install on their machine and sync the instance with TDS Classic. This will give them a very basic site to work with. Is this the recommended way for developers to work? What if the developer needs to develop/test something that requires more items, like for example a complex content indexing algorithm that involves thousands of content items? We would like to keep only development essential items in source control, but still have the ability for new developers to pull down a full content tree. Is this a common practice?
The process you describe for setting up a new machine works well, and is how we work, and recommend that. However, you can also leverage the 'deploy' option of TDS Classic which will essentially do an automate sync; this is typically how I like to populate my environment the first time. Beyond the initial deployment I typically use the sync functionality since I like to be a little more 'hands on' with changes to my environment.

 In the case of needing sample content to test functionality this is up to you if you think it is needed by everyone. If the majority of developers will need these item then it makes sense to check them in for everyone to use. However, if a single developer needs them for some isolated development and testing, then they would simply keep the items in their local Sitecore environment and don't add them to the TDS Classic project. We have heard of clients maintaining a separate TDS Classic project for sample content and this may be appropriate here.
Can I use TDS Classic to bring my content into Source Control?
This is something we strongly discourage as it isn't what TDS Classic was meant for. TDS Classic is intended for handling developer controlled items, not content. Sitecore is designed to manage the content including revision history. With that said, content is like any other item, and therefore can be brought into your SC system using the sync with Sitecore functionality.
How can I find what version of TDS Classic I'm Running?
To check your version number go to the Help menu, click About Microsoft Visual Studio. All your installed products are listed in alphabetical order. Find TDS Classic and the version number is to the right.
Do I need to do anything special to get Sitecore Rocks integration working?
TDS Classic and Rocks communicate through a special Rocks Plugin, called the TDS Classic Connector. Since Sitecore Rocks version, the TDS Classic Connector needs to be manually installed through Visual Studio.

Ensure that the latest versions of TDS Classic and Sitecore Rocks is installed.

Then, in Visual Studio, select Sitecore -> ‘Manage Plugins’ to bring up the Plugins dialog.

In the dialog select Online -> ‘Sitecore Rocks MyGet Gallery’.

Find the TDS Classic Connector from that list, and install it. Once installed, restart Visual Studio.
Does Sitecore Rocks work with TDS Classic?
TDS Classic and Sitecore Rocks work seamlessly together. We've teamed up with the Rocks developers to ensure that your development experience between TDS Classic and Rocks is as fluid as possible. The products compliment each other and if utilized in combination can give you great power and flexibility to your Sitecore development structure.

Does TDS Classic work with Web Forms for Marketers?
TDS Classic is compatible with Web Forms for Marketers (WFFM). Once the WFFM package is installed on a Sitecore instance, TDS Classic can manage the assets WFFM creates. These assets are simply Sitecore items stored in a specific folder. We have used TDS Classic and WFFM on a number of projects successfully. The key to making it work is to locate the folder WFFM uses and only add the assets WFFM created for you.
Does TDS Classic support items with duplicate names in Sitecore?
No. Duplicate item names are not currently supported by TDS Classic. There are two main reason for this.

1.The basic differences between a file system and the way Sitecore stores items
2.We can’t find a good reason to ever have items at the same level with the same name Sitecore stores items based on a GUID.

Every item has a unique ID, and therefore the name is irrelevant to Sitecore. The Windows file system on the other hand stores items on the name, and therefore cannot support having two items with the same name in the same folder.

There are a couple of cases where we hear requests for duplicate item support with the majority being that the developer wants to store 'Divider' items from the 'Core' database. For these instances we recommend that the dividers in the core database are renamed. The name of the ‘Divider’ item is irrelevant and if you rename them to Divider-1, Divider-2, etc… it will work as expected and TDS Classic will not complain.

For more information on this please see this blog post by Sean Kearney.
How do I get all of my Sitecore items into Visual Studio and source control?
See our Getting Started document on how to do this.
I installed TDS Classic but do not see a TDS Classic Project type when I’m creating a new project.
By default TDS Classic wants to install the project templates (TDS in the My Documents folder on your c: drive.

C:\Documents and Settings\UserName\My Documents\Visual Studio 2008\Templates\ProjectTemplates

The My Documents folder redirection seems to be a challenge for Visual Studio. When the My Documents folder is moved, the Visual Studio paths do not get updated. Ben Hall a UK C# developer wrote an interesting blog post on this.

If you have installed it in a different direct, you should make sure that the Visual Studio User Project Template Location setting in Visual Studio is pointing to the desired location.

                          1.In Visual Studio go to Tools>>Options
                          2.Under the Projects and Solutions highlight the General settings
                          3.Locate the Visual Studio user project template location: verify that this path is correct. It should                                be
                                        •Path to directory\Visual Studio 2008\Templates\ProjectTemplates
                          4.Click okay when you are done and now you should see the TDS Project Template when you try to                              create a new project.

Also, please note that if you are running Visual Studio in Safe Mode, none of your add-ins will load.
I bought several TDS Classic licenses for each member of the team, and I am now adding a new build server? Do I need to purchase an additional license?
No. Your TDS Classic license allows you to install TDS Classic on unlimited build servers. You must purchase a TDS Classic license for each developer that is working on a project.
What does this exception mean:An exception occurred while updating the Sitecore item /sitecore/path. The maximum size of data has been exceeded. Current data size: 2,739,200 bytes. Limit according to license: -7,455,744 bytes. Emptying the Recycle bin might help.
This means that your Sitecore License is expired or missing.
Does TDS Classic support renaming, deleting and adding items in Sitecore?
Yes. TDS Classic provides full support for the renaming, deleting and adding of items in your Sitecore project.

There are some limitations when syncing items where the items has been moved and/or renamed. A sync point must be chosen that contains the original position of the item and the new position of the item as subfolders. e.g. given the following folder structure:
                 ◦Folder 1
                 ◦Folder 2

If ItemToBeMoved was moved to Folder 2, you must choose to sync from ParentFolder. If you choose to sync from either Folder 1 or Folder 2 TDS Classic will think the item has been either added or deleted (Depending on the folder you choose), and will not treat the operation as a rename.
What are the Sitecore and system requirements?
TDS Classic has been fully tested with the following:

Visual Studio: 2008, 2010 and 2012, 2017 (requires TDS 5.6 or higher).

Source Code Control Systems: Team Foundation Server, Subversion, and Git, but will also work with any Microsoft compliant source control system.

Sitecore: Version 6.0.1 and higher. The Update package feature in TDS 2.0 requires Sitecore 6.1 or higher.
Does TDS Classic work with Git?
Yes, TDS Classic does work with Git, TDS Classic will work with any Source Control you attach to Visual Studio. However, there is an issue with the line endings when bringing items into Git. The Unix-style line endings add an extra character. To avoid this error please configure your .gitattributes file with these lines:

# Custom for TDS/Sitecore serialization
*.item -text

For more information please see Sean Kearney's post on using TDS with Git or GitHub.
What do I need to do to activate Configuration Transforms?
You don't need to do anything to activate Config Transforms, that's the best part! After you indicate which file you want transformed and you follow the transformation syntax, TDS Classic transforms the file for you. No need for any Custom MSBuild script or any kinds of custom settings.
What does TDS Classic do?

TDS Classic gives you the ability to keep track of all the Sitecore items in your project, and see who changed what in a Source Code Management System. By maximizing all the features and functionality of your Source Code Management System with TDS Classic, you will streamline and improve the overall performance of your team. Having everything in a Source Code Management System gives you one master repository for the project and one, central integration point of all the code and Sitecore items for a team. Even if you are a team of one, using a Source Code Control system is the smart way to work, and provides many benefits, including:

  • Complete accountability and an audit trail for all changes to all Sitecore items and .NET code in a project.
  • Easier, secure backups thanks to single repository storage for all of your Sitecore items and code.
  • Ability to work remotely or disconnected from the network and then sync and merge changes at a later date to the source code control system.
  • Easily compare versions of items and code.
  • Rollback to prior versions if there is a problem.
  • Merge changes with ease.
  • Leverage branching and other advanced source code management techniques.

TDS Classic helps new developers on a team get up to speed quickly by creating a new, clean Sitecore environment, getting the most out of the Source Code Management System and then deploying items and code to Sitecore. You also have to ability to easily see what other team members have been doing by reviewing the check-in comments.

Without TDS Classic each developer is dependent on coordinating and then packaging up changes with the entire team. We have even seen partners go so far as design their projects so that developers each work on separate areas of a project to reduce possibilities for collision.

This is not the optimal way to work.

TDS Classic has changed the way Sitecore projects are developed, and now, with the introduction of TDS Classic 5.6  it’s continues to be the standard Best Practices methodology for Sitecore development.

What is the Hedgehog Development Sitecore Connector (HDSC)?
The Hedgehog Development Sitecore Connector (HDSC) is a custom web service designed by Hedgehog Development to allow Team Development for Sitecore to directly manipulate Sitecore Items. The connector uses a GUID to prevent undesired access to the service. The connector operates in two modes; Development and Deploy Only.

In Development mode, the connector is installed permanently in the Sitecore installation. This is done by CHECKING the Install Sitecore Connector checkbox on the Build tab of the property page. This allows the developer to use the Sitecore connector to sync with the Sitecore database and to browse item templates at any time.

In Deploy Only mode, the connector is installed at the start of a deployment and removed when the deployment completes. This is done by NOT CHECKING the Install Sitecore Connector checkbox on the Build tab of the property page. This allows only a small window where the connector is available on the server. Additionally, a new random GUID is chosen at the start of every deployment.
Why isn’t TDS Classic able to get my items if they aren't in the final workflow state?
TDS Classic is bound by the limits of the Sitecore API. If you are running your site in "Live Mode," as Sitecore provides in the /App_Config/Include/LiveMode.config file, then when TDS fetches an item from the API it is honoring the workflow state and version of the item.

For TDS Classic to be able to get the item(s) that aren't in the final workflow state, you must disable workflow for the master database.

The Complete TDS Classic Manual
This manual is a complete set of documentation you can use while learning TDS Classic. If you find something new, different or needs changing add it through a pull request!
Hedgehog Tools Help
Our TDS Classic Help section is built in to the tool. This will help gives you a granular understanding of each function and feature within TDS Classic.
TDS Classic Cloud Build
A document describing how to build in the VSTS cloud with NuGet TDS Classic build package.
Team City and Octopus with TDS Classic
Integrating TDS Classic with Team City and Octopus.

Continuous Delivery: Kagool and TDS Classic
TDS Classic has allowed Kagool to automate the build of their Sitecore Update Packages as part of a continuous delivery process.
Sync, Deploy & Transfer: Norfolk County Council, TDS Classic and Razl
With TDS Classic, Norfolk County Council syncs all Sitecore development items to source control; they use Razl to transfer and compare Sitecore content items between environments.
Too Many Cooks Spoil the Broth
Whitepaper on the importance of Continuous Integration while working in a team environment.
Build Extensions
Our Whitepaper on how to extend Hedgehog Tools to fit within your environment. Have the most up to date and complete project on the block!