Sitecore Blog: Technical Trends

Team Development with Sitecore

By Lars Nielsen, June 11, 2010 | Rating:  | Comments (6)

Team Development for Sitecore

In any web solution being built now, the collaborative process of building and deploying a web site is a challenge: Data structures, content structures, data definitions or other content often is part of a deployment, - along with the the physical code. As such, traditional source saving with the capabilities of storing physical files fells short as they solemny works with physical files.

Of course this is nothing new to Sitecore, - and we do have several good solutions to this challenge.

For  those who not know Sitecore well, that data definitions, design definitions, references to code and design, system configuration, etc. all are being perceived as Sitecore content. Everything is stored in the database.

Developing on one Internet Server

While it is possible to develop web sites on the same Internet Information Server, - this is not a recommended approach: A developer who accidently modifies a template another developer is working with, may affect the entire solution. Also, whenever a developer compiles his or her application, the ASP.NET framework recycles, interrupting other developers. Debugging would even halt the application for everybody else until the debug process is released.

Working on a single installation is not an option for team development.

Working on one database with several Internet Information Server instances

Originally the above challenge was solved by installing Sitecore individually on the developers PC’s with a reference to the shared database. This, however, introduced other disadvantages:

- No way of tracking changes and rolling back the solution.

- Local cache on the developer machine may contain instances of content that are being deleted or modified by another developer. The developer would have to be very aware of clearing cache on the local instance, - or turn it off, hurting performance.

- Whenever the solution is complete, the developers would have to keep track of the changes in order to deploy them to the production or test environment.

While the upcoming Sitecore 6.3 (designed for multiple editing servers using same database) may solve the challenge of local cache, developers would still experience change tracking and deployment.

Packages

The Sitecore packager is a built-in tool that allows developers and web masters to ship content items and physical files in a distributable single zip file. 

Sitecore Packager Properties Page

While this tool is great for final deployment of modules and custom code, - from one server source server to multiple target servers, - it is not a convenient way of working, when it comes to team development. Developers may, despite the dynamic filters for the package, still be very involved in the package building and maintaining the package.

Another challenge about using packages is that changes is stored in a single file, - meaning multiple developers cannot merge their changes, - or lock content or files for changes.

Item Serialization

With Sitecore 6 came the introduction of item serialization. Item serialization allows the developer to export and import content items from a file by a single click. Content is transferred from the database to a physical storage and back which enables the developer groups to check in content along with project files in source control.

Seralize ribbon - From Sitecore to file system 

In addition, the serialized format of the items is plain text making it possible to use the compare features of your favorite source control software.

Compare to items seralized from Sitecore to file system 

Of course, to achieve this, developers must first serialize new content items, e.g. templates, then add these newly updated files afterwards to the source control, - or to your visual studio project if your source control software is integrated to it.

While serialization provides all the tools necessary for team development groups, the manual processing introduces a risk of misalignment between the intended content that is to be checked in, and what actually was checked in.

For partners who wish to move to the next level of automated source control, Sitecore partner Hedgehog provides an excellent tool.

Team Development for Sitecore (TDS)

For development groups who want to integrate source control fully with Sitecore and their development environment, TDS by Hedgehog elegantly offers this opportunity.

TDS exposes the Sitecore data structure within your Visual Studio environment, and allows you to synchronize selected Sitecore items or structures directly to your Visual Studio Project. This, along with integration to Source control systems such as Visual Studio Team System or Subversion greatly simplifies the process of adding content to your source control and fully make it part of your development process. 

Hedgehog TDS: Visual Studio integration, checkign in/out content to source control system. 

Hedgehog TDS menu. Sync content from Visual Studio 2010 with Sitecore

While developers with normal Sitecore serialization and deserialization practically attain their goals of applying source control to selected content structures, it is a manual process. Team Development for Sitecore automates the process and reduces the risk of project misalignment.

In addition, TDS comes with other valuable features, which usually also is a manual process. TDS makes it possible for a developer to compare two versions of their project, and from that automatically build a Sitecore deployment package, allowing easy install. Should the deployment server be reachable directly from the developers environment, - TDS even make it possible to handle the deployment automatically.

By utilizing the deployment features of TDS, your development group does not only solve the challenge of applying content to your development source control, but also greatly simplifies and automates the process of deployment.

Team development for Sitecore is currently fully integrated to Microsoft Team Foundation Server and Subversion, but will work with any other Microsoft compliant source control system.

http://www.hhogdev.com/products/team-development-for-sitecore.aspx (opens in new window) 

 

Comments

  • Thanks Lars.
    I would like to mention that version 2.1 of TDS is almost ready to be released! We have a bunch of new features to help streamline the development process with the biggest being multi-database support. Furthermore, we have improved the UI for managing developer specific configuration files.

    - Sean Kearney
    June 11, 2010 at 8:36 AM

  • This is great, Lars!

    Just wanted to let you know that the in the newly released Sitecore CMS 6.2 Developer Foundations course cover this topic in detail. Please take a look at:

    http://www.sitecore.net/Training/Course-Overview/CMS-62-Developer-Foundations.aspx

    If your team is just starting out developing with the world’s best CMS, sign up today with your regional office for Sitecore CMS 6.2 Developer Foundations training.

    - Seth Luersen
    June 24, 2010 at 1:57 PM

  • Hi Lars,

    Great Post, I saw the presentation at the DreamCore in Copenhagen, very insteresting and useful.

    However, I would really love to see Sitecore developing such a plugin. In my mind, Sitecore itself should put effort on bringing such a visual studio plugin on the market, because Sitecore can react on changes between upcoming version fastest.

    Are there any plans on developing such a tool at Sitecore?

    Best Regards,
    David

    - David Stöger
    June 24, 2010 at 11:28 PM

  • Hi Lars,
    I wanted to respond to David’s question.

    David, I can certainly understand why you would want Sitecore to take on the responsibility of building a Visual Studio add-in. Hedgehog is proud to be both a Sitecore Technology Partner, and Implementation Partner. We bring years of experience to not only doing Sitecore implementations, but also software and web application development in general. Two of the partners at Hedgehog have years of development experience building visual studio add-ins. We also have a Sitecore MVP on staff, and have won multiple awards as a Microsoft Gold Partner for application development and customer service. Our experiences and our relationship with Sitecore put us in a unique position to create a tool that enhances the already fantastic Sitecore development experience. I think if you gave TDS a try, you would quickly see the benefits, and how tightly the tool is integrated with Sitecore.

    Sincerely,
    Peter Madsen

    - Peter Madsen
    June 25, 2010 at 9:31 AM

  • Hi Lars -

    Thanks for the article. We have been using TDS for at least six months now.

    TDS is an invaluable tool for our Sitecore development. The cost of TDS has easily been recouped by the amount of time TDS has saved my team.

    For us TDS has done several things:
    1. The TDS add-in creates a new Visual Studio project type which integrates nicely into our build solution. I can modify the TDS project file (it is XML) which our build process uses and include only the items that I want when deploying to specific environments. This integration with our build process did not take much effort as TDS deployment is built on top of MS-Build.

    2. We don't worry about the deployment and management of templates. When I took the Sitecore training I realized how exciting Sitecore is but I was concerned about the management of deploying templates via packages. Keeping track of what templates I created and then managing the various packages created across a team of developers is not something I looked forward to. My fears about packages don't exist anymore because of TDS.

    3. It has enabled multiple developers to work on varying pieces of the project without interfering with each other. I can work on my own local Sitecore database and deploy other peoples changes to my Sitecore database if and when I want to. Other people on my team can do the same thing with my Sitecore changes. Yes you can do the same thing with packages but the process is a lot less painful with TDS!

    Also, the folks at Hedgehog development provide wonderful support. Any question or issue I have had with TDS has been resolved very quickly. So anyone worrying about a 3rd party producing this Add-in for Sitecore should be assured that the support is very responsive and knowledgeable.

    Thanks,

    Rob McElroy

    - Rob McElroy
    July 26, 2010 at 12:25 PM

  • Lars, thanks for your detailed post. Sounds like a winning combination with a collaborative partner.

    - Erick Mott
    August 05, 2010 at 8:13 PM

*
*
*

Learn More with Sitecore

Newsletter
*

Ogden City | Read Case Study >

We have all the complexity we need behind the scenes, yet Sitecore makes this transparent to our users. The site will continue to grow – in a managed and controlled manner.

- Denise Taylor, Ogden City