Introducing Sitecore Rocks

This blog post provides some introductory information about Sitecore Rocks for experienced Sitecore developers working with the ASP.NET CMS. Sitecore Rocks is a Visual Studio plug-in with massive functionality designed to maximize developer productivity.

This report is based on Sitecore Rocks Community Technology Preview 0.7.5. For information about the major components of Sitecore Rocks, see my blog post Major Components of Sitecore Rocks. To download, for installation instructions and more information about Sitecore Rocks, see my blog post Sitecore Rocks Connections.

A few times during dreamcore both in the US and in Europe, I was surprised to see how few Sitecore developers use Sitecore Rocks. Developers claimed reservations about the beta nature of the software and a fear that Sitecore will eventually charge for a license. I expect the bigger issue is actually the learning curve.

Sitecore has a number of reasons to maintain Sitecore Rocks as a techology preview. Consider the following:

  • Sitecore Rocks remains in technical preview only to allow #therocksguy maximimum implementation flexibility.
  • Sitecore's own developers use Rocks; Sitecore is not going to abandon it.
  • There is a great amount of developer intertest including extension contributions from the community.
  • Sitecore is committed to distributing Rocks to Sitecore developers at no charge.
  • Sitecore uses Rocks in current .NET developer training.
  • You can use Siecore Rocks in conjunction with Team Development for Sitecore by Sitecore technology partner Hedgehog Development.
  • Without releasing Sitecore Rocks as a product, Sitecore doesn't have to address or document dialogs such as this one:

Screen capture of Sitecore Rocks message indicating Visual Studio will get grump and unresponsive if the user loads 2189 items.

Or this:

Screen capture of Sitecore Rocks dialog Wait...What... Dude, you are alread loading items...

The learning curve really isn't that bad, nor is creating a new connection for a new installation. Hopefully this blog post will help, as could this Sitecore Rocks cheat sheet that I will try to maintain, which basically functions as a lightweight reference to various context menus. I already know that a future Sitecore Rocks release will drastically change the menus, including some changes that I have suggested. Additionally, the visibility of some menu entries depends on the type of item selected. As discussed in the Sitecore Rocks Cheat Sheet thread on the Sitecore Developer Network (SDN) forums, we're working on a solution to export the documentation as XSL, but we haven't found anyone to write the XSL and CSS for rendering by a browser (hint, hint).

I now try to avoid accessing Sitecore with a browser, using Sitecore Rocks for everything, and I will try to update this post if I learn anything significant. With no ribbon, it takes some time to find the appropriate menu entries at first, but I believe Sitecore Rocks has already increased my development speed. Remember to right-click on everything to see options:  connections, databases, items, headers, sections, fields, managers, viewers and anything else that appears.

Some minor things I had to learn:

  • In the item editor, right-clicking the header or a section shows an item context menu, while right-clicking a section or field shows a field context menu.
  • To copy the Path or ID of an item (equivalent to Developer > Show > Path or ID in the Content Editor), click the clipboard icon next to the path or ID in the item editor.
  • To set the base templates for a data template, in the item editor, right-click the item header, then click Tasks, then click Set Base Templates. In the Template Designer, right-click and then click Set Base Templates.
  • To access an item reported in the Validation Issues wizard, right-click a leaf node, and then click Edit.
  • In Visual Studio, click the Tools menu, and then click Options. A Sitecore tree providing access to a number of settings appears in the Visual Studio Options dialog.
  • Right-click a connection and select Manage, and click the Validation tab.
  • You can drag a rendering from Sitecore Explorer onto the Source tab of a layout (.aspx) or sublayout (.ascx).
  • Use Sitecore Explorer as you would use the tree in the browser-based Content Editor and Template Manager user interfaces. Use the item editor as you would the editing pane in Content Editor. Sitecore Rocks provides a single Sitecore Explorer, but you can open any number of item editors. To cause Solution Explorer to select the item open in the current item editor window, right-click the item editor header, and then click Locate in Sitecore Explorer. Alternatively, press CTRL+L.
  • To view and copy item properties, show the Visual Studio properties pallet, and then in Sitecore Explorer, select the item.

You can run Sitecore Rocks Windows to run Sitecore Rocks without Visual Studio. Because Sitecore Rocks Windows may not run with administrative rights, it might not be able to install the Web service components; use Visual Studio for that purpose instead.

You can communicate with #therocksguy on the Sitecore Rocks forum on the Sitecore Developer Network (SDN) forums.

There are numerous additional resources about Sitecore Rocks on the web, including videos

  • I am very new to Sitecore with my new development position.  I have been tasked with writing a "simple" standalone application or web service which can read the sitecore content tree and grab a few very select fields from a custom template.  The template is called MenuItem.    in the sitecore content tree the parent is: /sitecore/content/company/Site-Data/Menus/GlobalMainMenu  under that there is a multi-level tree where each item is a MenuItem  MenuItem has just three fields that I need: 1.  Item Name 2.  Text 3.  URL These three fields are all simple text.  The standalone application needs to query sitecore and get these three fields, and the tree structure from our sitecore environment.  I am using VS.NET with VB.NET and C#.  v2008. Can you point me in the right direction to begin researching this?  Thanks, John Sauer

  • Sorry for the delayed response. Hopefully you already figured this out,  I would think the Content API Cookbook would be the place to start. I think you need really simple APIs such as Sitecore.Data.Database (via Sitecore.Context.Database or Sitecore.Configuration.Factory.GetDatabase()), Sitecore.Data.Database.GetItem(), Sitecore.Data.Items.Item.Fields, Sitecore.Data.Fields.*, and Sitecore.Links.LinkManager.GetFriendlyUrl(). API Cookbook.aspx  If you need to step further back, maybe here:  or maybe even this far back:  Exposing a web service that calls the Sitecore APIs is like writing any other web service, but unless all the data is public, you might have to consider authentication and authorization