Hedgehog Development Home Page Link

Team Development for Sitecore

Team Development for Sitecore

Team Development for Sitecore (TDS) brings all of your Sitecore objects into Visual Studio. Imagine having all the benefits of a source control management system fully integrated with your Sitecore development environment. Team Development for Sitecore (TDS) makes that a reality. Now you are able to take advantage of the value Visual Studio Team System (VSTS), Subversion, or many other Source Code Management Systems offer to you on your Sitecore based projects.


Requirements

Team Development for Sitecore has been fully tested with Team Foundation Server, and Subversion, but will also work with any Microsoft compliant source control system.

Visual Studio 2008 or 2010.

Sitecore version 6.0.1 and higher. The Update package feature in TDS 2.0 requires Sitecore 6.1 or higher.

Collaborate With Confidence

NO MORE PACKAGING

Those three words are music to the ears of any team that has worked with Sitecore, Microsoft Visual Studio Team System, and a Source Code Control System. Each developer can now identify changes, iterate their portion of the project, and get their contributions back into the workflow quickly and without worrying about collisions. The Developer's Workbench: Wherever They Want It to Be

You want to provide the most flexible and welcoming environment possible for your highly talented developers. Now they can have the workbench of their dreams wherever they want it to be, freed from worry that being disconnected from the main database will slow them down in any way. Now they can work remotely, then when they reconnect to the network they can sync and merge all of their changes to the source code control system without having to first check and re-check everything before packaging their changes for incorporation.

With Team Development for Sitecore (TDS) there's no more packaging.

Focus on the Code - Not the Dependencies

Many teams have tried assigning different developers to work on different parts of projects with only moderate success. There are still dependencies to worry about and no code exists in a vacuum.

With Team Development for Sitecore you can stop worrying about dependencies and allow your developers to work with complete freedom, focusing on what they need to accomplish rather than worrying about how well it will play with changes others may be making.

Re-Defining Rapid

Now you'll have every member of your team working to full capacity. No more lost time spent checking, verifying, and packaging changes for submission. No more time-consuming testing and re-testing with every build. You'll have new releases out the door in record time when your team is enjoying continuous builds and fully automated deployment with Team Development for Sitecore.

Team Dynamics

A team member is leaving the project? Or the project is getting larger and you need more team members to keep it on schedule?

Add new developers to a project as needed. Team Development for Sitecore makes it easy for you to create a complete new workspace for a new member joining the team, bringing them fully up to speed in record time with source control and commentary on every change that has already taken place. No more waiting for new developers to "figure everything out". With Team Development for Sitecore they simply review the check-in history of Sitecore items and .NET code and get right to work.

Three Magic Words: No More Packaging

Have we mentioned yet that Team Development for Sitecore eliminates the need for packaging your updates? :)

This really cannot be stressed enough because it is so very important to developers to know that their code isn't going to be clobbered by someone else's during new builds, and no developer wants to be guilty of clobbering anyone else!

Now each developer can work with a local database knowing their changes will make it into the next deployment build with no need to invest incredible amounts of time in all of the checking and rechecking that packaging requires.

Deployment environments are built from a single source code control system, and Team Development for Sitecore makes sure changes don't step on each other so team solutions can be deployed from development to quality assurance, all the way to production. Changes are easily merged, with no packaging!!!

Source Control

TDS gives you the ability to keep track of all the Sitecore items in your project, and be able to see who changed what in a Source Code Control System. Using TDS, you will improve the control and overall performance of the team, by giving you all the features and functionality of any modern Source Code Control System.

Having everything in a Source Code Control System gives you one master repository for the project. The Source Code Control System becomes the master and central integration point of all the code and Sitecore items for a team. Even if you are a team of 1, using a Source Code Control system is the smart way to work.

Allows Sitecore items and .NET code to be maintained in your Source Code Control System giving you all the advantages of a source code control system.

  • Complete accountability and audit trail for all changes to all Sitecore items and .NET code in a project.
  • All of your Sitecore items and code are stored in a single repository, meaning backups are easy to do, making your work safe.
  • Developers can work remotely or disconnected from the network and then sync and merge changes at a later date to the source code control system.
  • You can easily compare versions of items and code.
  • You can rollback to prior versions if there is a problem.
  • You can easily merge changes.
  • Branching and other advanced source code management techniques can be leveraged.

Single Repository Means Easy Backup

Of course the end of packaging is not the only major benefit of Team Development for Sitecore.

All Sitecore items and all code are stored in a single repository which makes backups simple. No more worrying about whether or not everything is backed up. Just back up the repository!

Easy Rollback

Team Development for Sitecore also makes it easy to compare different versions of each of your items and code. If something you've done turns out to be an error you can simply roll back to a previous version!

See it Come to Life

Nothing builds client enthusiasm like seeing their project truly "come to life" before their eyes. Team Development for Sitecore provides visual graphing of the various Sitecore templates, relationships, and other components which can easily be viewed and reviewed by your designers and developers along with project managers and clients so they can witness as their project comes to life in real time. Any changes or new additions they may require can then quickly be integrated back into the workflow becoming part of the overall solution.

Complete accountability and audit trail for all changes to all Sitecore items and .NET code in a project

The ability to managing the release of a Sitecore project using proven best practices for application development.

  • Develop locally.
  • Continuous integration to QA and staging environments.
  • Convenient MSI install for clients.

Microsoft VSTS Compatibility

Microsoft's Visual Studio Team Services delivers some of the most highly regarded and highly productive development tools available. Team Development for Sitecore not only expands upon these tightly integrated, extensible lifecycle tools, it also facilitates the incorporation of Visual Studio Team Services or Subversion with Sitecore delivering an unparalleled development environment for you and your team.

  • Full integration with Visual Studio Team System work item tracking and reporting.
  • Project managers and testers can easily track and assign work items
  • Testers can report bugs that are assigned to the developers via workflow

Pricing

Quantity Discount Price (per user)
1-4 0% $599.00
5-9 10% $539.10
10-19 15% $509.15
20+ 20% $479.20

Licensing

One Year of Free Upgrades
Receive 1 year of free upgrades - including all major and minor releases
Each additional year of support and upgrades can be purchased for 40% of your total purchase price

User Based Licensing
Each user can install TDS on multiple systems provided you are the only person using the system

You must purchase one license for each TDS user. There are currently no Enterprise or Site licenses available.

If you or someone in your company is a Sitecore MVP, you will receive an additional 5% discount on ALL the purchased licenses. Please contact us directly to get this special pricing.

Screenshots

Learn more about Team Development for Sitecore

Still not sure what Team Development for Sitecore can do for you? This short Prezi-tation should help clear things up!
Press the Play button for each slide, or press Play button, then More and then Autoplay to see the entire presentation.



Bringing a new developer onto an existing project

In this video we show you how you can very quickly get a new developer up and running on an existing Sitecore project. We explain how the Sitecore connector is easily installed and configured, and how you can deploy all of your Sitecore items, and .NET code right from Visual Studio without any packaging.



Which Version of TDS do I Have Installed

In this short video we show you how to determine which version of TDS you have installed, and how to find out what the latest available version is.



Verifying Deployment Environment Access

In this video we show you three quick troubleshooting tips to help you verify that you have configured access to your deployment environments correctly.

Many of our customers tell us how much they enjoy working with Team Development for Sitecore. Here are just a few of the things that they have told us.


Lars Nielsen, one of the cofounders of Sitecore has written an interesting article on Team Development. In the article he talks about team development in a Sitecore environment, and discusses the value that Team Development for Sitecore brings to the development team.

An article appeared on the web site cmswire.com about Team Development for Sitecore. You can find that article here.

"TDS enables our content editors and all our developers to work together side by side. With all the independent work merged together and checked into source control we have our entire solution in one place. From here we make release snapshots that are effortlessly deployed to test, stage and release environments. WIthout TDS we would have to do much more manual work, now we only really need to merge Sitecore items with TDS and check-in."
Hallvar Helleseth, Avenir

“TDS has been working fantastically. This was the one thing we needed to enable our developers to work locally and not share a development database and be getting in each other’s way. So that alone has been a huge help. The site we just launched took around 6-7 weeks and I don’t think that would’ve been possible without TDS.”
Blair Scott, Digital Day

"This tool is SO cool."
Lars Nielsen, VP Technical Marketing Sitecore

“Hedgehog’s vision and experience in team implementations along with their commitment and investment in Sitecore technology has paid off in a unique solution. The Sitecore ecosystem of solutions and partners is much stronger as a result of their efforts.”
Paul Markun, Sitecore Vice President of Marketing

Team Development for Sitecore Frequently Asked Questions

What does TDS do?

TDS gives you the ability to keep track of all the Sitecore items in your project, and be able to see who changed what in a Source Code Management System. Using TDS, you will improve the control and overall performance of the team, by giving you all the features and functionality of any modern Source Code Management System.

Having everything in a Source Code Management System gives you one master repository for the project.The Source Code Management System becomes the master and central integration point of all the code and Sitecore items for a team. Even if you are a team of 1, using a Source Code Control system is the smart way to work, and provides many benefits, including:

  • Complete accountability and audit trail for all changes to all Sitecore items and .NET code in a project.
  • All of your Sitecore items and code are stored in a single repository, meaning backups are easy to do, making your work safe.
  • Developers can work remotely or disconnected from the network and then sync and merge changes at a later date to the source code control system.
  • You can easily compare versions of items and code.
  • You can rollback to prior versions if there is a problem.
  • You can easily merge changes.
  • Branching and other advanced source code management techniques can be leveraged.

TDS helps new developers on a team get up to speed quickly by creating a new clean Sitecore environment, getting latest from the Source Code Management System and then deploying to Sitecore. They also have to ability to easily see what other team members have been doing by reviewing the check in comments.

Without TDS 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 in separate areas of a project to reduce possibilities for collision. This is not the optimal way to work.

We really believe that TDS will change the way the Sitecore projects are developed, and that TDS will become the standard Best Practices methodology for Sitecore development.

What are the Sitecore and system requirements?

Team Development for Sitecore has been fully tested with the following:

Visual Studio: 2008 or 2010

Source Code Control Systems: Team Foundation Server, and Subversion, 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.

How do I configure Team Development for Sitecore to connect to other Sitecore databases?

As of version 2.1 of Team Development for Sitecore, you can create a separate TDS project for each database you wish to connect to. Simple add a new TDS project to your solution, right click on the project name, select properties, and then on the General tab specify the Sitecore database you wish to connect to. By default, the Master database is selected.

Multiple Database Configuration

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.

What are File Replacements?

File replacements allow the deployment of environment specific files when the TDS project is built. This is useful for files holding connection strings or application settings that may vary from environment to environment. The file replacement tab can push individual files or folders. The source location can be an absolute path or a path relative to the project selected as the web application project.

By allowing for file replacement during builds, TDS allows environment specific configuration files to be placed under Source Code Control.

What is the Recursive Deploy Action?

During deployment, TDS may find items in Sitecore that are not in the project. If TDS determines that those nodes do not belong in the Sitecore database (See Child Item Synchronization), TDS will use the Recursive Deploy Action to resolve the issue. There are 3 possible options:

  1. Ignore Sitecore Items not in the Project: This is the default when a project is created. When this is selected, TDS does nothing to the unknown items.

  2. Delete Sitecore Items not in the Project: TDS will delete nodes under an items marked for child synchronization (See Child Item Synchronization). They are permanently removed from the database.

  3. Move Sitecore Items not in the Project to the Sitecore Recycle Bin: TDS will move nodes under an items marked for child synchronization to the recycle bin (See Child Item Synchronization).

What is the Child Item Synchronization property on the Item property page?

This property controls how items are handled during a Sync operation and a Deployment. There are possible values for this property. They are NoChildSynchronization, KeepAllChildrenSynchronized and KeepDirectDescendantsSynchronized.

During Synchronization the property values work as follows:

NoChildSynchronization: Only the current item is checked for changes. This is the default when adding single items to the project.

KeepAllChildrenSynchronized: All descendants under the current items are checked on Sitecore. If there are items on Sitecore not in the project, those nodes are added to the sync window automatically as children of the current items. The user will have the option of adding them to the project. This is the default when a node is added recursively to the project.

KeepDirectDescendantsSynchronized: Works like KeepAllChildrenSynchronized, but only the direct descendants of the item are checked.

During Deployment the property values work as follows:

NoChildSynchronization: Only the current item is deploy to Sitecore

KeepAllChildrenSynchronized: When the node is deployed to Sitecore, the deployment process checks for child nodes in Sitecore which are NOT in the project. If nodes are found, the Recursive Deploy Action setting is used to determine the desired course of action.

KeepDirectDescendantsSynchronized: This behaves the same as KeepAllChildrenSynchronized, except that child nodes are not checked.

What is the Item Deployment property on the Item property page?

This property controls how items are pushed to Sitecore during a deployment. The two possible settings for this property are DeployOnce and AlwaysUpdate.

AlwaysUpdate: The contents Item in the project will always overwrite the values in Sitecore. This is the default. This is typically used on Items that are not considered to be content.

DeployOnce: The Item will be created if it doesn’t exist on Sitecore. If the Item exists in Sitecore, it will not be changed. DeployOnce is typically used to help setup the initial content tree, but once users begin entering and altering content, those nodes are left alone.

How do I work with multiple TDS projects in a single solution pointing at the same Sitecore server?

To do this in the development environment, the Sitecore Web URL, Sitecore Deploy Folder and Sitecore Access GUID must be the same across all TDS projects. Also, Install Sitecore Connector must be checked for all projects. All of these values can be set for each project in the Build property page.

If you change the value of the Sitecore Access GUID for any project, you must change all projects to match the new value. After the property pages are saved, you must right-click on a TDS project in the solution explorer (It doesn’t matter which one) and choose Install Sitecore Connector. This will update the connector with the new GUID, which will allow all TDS projects to communicate with Sitecore.

In the production environment, the Install Sitecore Connector can be left un-checked, since this environment is deploy only. When the deploy runs for each TDS project a new GUID will be chosen for each deployment.

How does Sitecore talk to Visual Studio?

Sitecore and Visual Studio communicate with each other via the Sitecore Connector. See the question: What is the Hedgehog Development Sitecore Connector (HDSC)? above for more details on the Sitecore Connector.

How do I get all of my Sitecore items into Visual Studio and source control?

Can I use TDS to bring my content into Source Control?

This is something we strongly discourage as it isn't what TDS was meant for. TDS was meant to handle 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.

Can I exclude items that are in TDS when deploying, for example some test content that I have?

Yes. There are two ways of doing this.

First way:

  1. In the TDS project explorer select the item that you want to exclude. Right click, and choose properties, or alternatively press F4.
  2. In the property window, click on the Exclude Item From property; press the dropdown button in the right-most portion of the property value area for Exclude Item From.
  3. Click the check box next to the configuration name you wish to exclude the item

Second Way:

  1. In the TDS project explorer select the item that you want to exclude. Right click, and choose Deployment Property Manager (DPM)
  2. The DPM shows the Sitecore item you selected along with all items under the selected item. In the Current Config column, there will be two values: Include or Exclude.
  3. Clicking on a value under Current Config will allow you to change that value.
  4. Selecting a different configuration in the Solutions Configuration dropdown will change the Include/Exclude values under Current Config to match the selected configuration.

Note:

  1. Excluding an item from a configuration will exclude all children of that item.
  2. Including an item in a configuration will include all parents of that item.
  3. A solution configuration may use a project configuration with a name that is different than the solution configuration. Please use the Configuration Manager window to manage this.

If I exclude items for a configuration that creates an update package, will those items be in the update package created by that configuration?

No. This allows developers to create update packages for specific environments, where different items are included in each package.

I installed TDS but do not see TDS Project project type when creating a new project?

By default TDS wants to install the project templates (TDS Project.zip) 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 something that Visual Studio has a problem with. 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
    1. 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.

Does TDS support renaming, deleting and adding items in Sitecore?

Yes. TDS has 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:

  • ParentFolder
    • Folder 1
      • ItemToBeMoved
    • 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 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.

How do I include extra files in an update package?

You can leverage the "File Replacement" features of TDS. This feature will allow for you to configure individual files as well as entire directories to be included in the package.

Please see attached sample project.

Does TDS support items with duplicate names in Sitecore?

No. Duplicate item names are not currently supported by TDS. The reason for this lays in the basic difference in the way Sitecore stores items, and the way the Windows file system stores names. 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.

I am getting this error message: Exception The maximum message size quota for incoming messages (16000000) has been exceeded. To increase the quota, use the MaxReceivedMessageSize property on the appropriate binding element. (CommunicationException)

You are probably trying to bring large file size content into your source control system. This is something that we discourage. If you have to do it, you can modify the maxBufferSize values in this file:

(64 bit system)

C:\Program Files (x86)\Hedgehog Development\Team Development for Sitecore\HedgehogDevelopment.SitecoreProject.VSIP.dll.config

(32 bit system)

C:\Program Files\Hedgehog Development\Team Development for Sitecore\HedgehogDevelopment.SitecoreProject.VSIP.dll.config

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.

I have created a second TDS project to handle my CORE database. How should I set up the deployment settings?

For the 2nd TDS project you should do the following:

  1. If you are using a .user file for the 1st project, then copy that to the 2nd TDS project's location.
  2. The "Source Web Project" setting should be left blank. This will prevent building twice and allow you to leave the "Deploy" folder blank.
  3. The settings in the configuration manager can be the same.

    Sitecore Site of the Year

    Hedgehog Development Client “The Knot” Awarded Sitecore Site of the Year 2009

     Sitecore Site of the Year

    Support

    Looking for support for Team Development for Sitecore?


    Because of the nature of technical support, we have found it is best handled via email.

    Powered By Sitecore

    Powered By Sitecore 
    Our website is powered by Sitecore's latest version of their CMS.  Please contact us to discuss how your Web site can become powered by Sitecore also.

    Azure Cloud Services

    The Windows Azure platform offers a flexible, familiar environment for developers to create cloud applications and services. With Windows Azure, you can shorten your time to market and adapt as demand for your service grows.


    Listen to our interview with John McClelland and Brian Johnson from Microsoft, as we discuss how we have succesfully implented Azure solutions.