Archive for December, 2007

Spry and Dreamweaver

Hi Spry:team,

I know I say this every time, but it has been a while. Spry 1.6 has been out for 2 months and change. The Spry team has been a bit distracted with Dreamweaver work, but we will have a new widget to preview in the near future. Lots of other exciting things are happening in our widget world, but at this point I can only tease…

So there is still some confusion on the relationship between, Dreamweaver, Spry and the Spry Updater for Dreamweaver. I am going to take this time to try to clarify the 3 ideas.

The Spry framework is a free javascript library(s) available for download on Labs. It contains the core javascript file, samples, demos and documentation for all the features with the library. Spry has a wide range of features, including data, widgets, effects, DOMUtils, form submission, etc.

Spry is developed independently of Dreamweaver, although the Spry team is technically part of the Dreamweaver team. Since Spry is a much simpler project compared to Dreamweaver, that means that the Spry team can put out releases every few months, much faster than Dreamweaver’s 18 month cycle. This means that the feature set of Spry will always be well ahead of Spry feature IN Dreamweaver.

Dreamweaver CS3nsupports Spry authoring in a few ways. It has support for creating XML Data Sets and implementing Spry regions/repeats. Widgets are rendered as they would be in the browser, making for easy styling. Spry Effects are implemented in the Behaviors Panel. Code hinting and coloring make navigating through Spry pages easier.

Dreamweaver implements Spry behind the scenes like this: There is a set of Spry files within the DW Configuration folder that are used in DW’s design view. These are the ‘design-time’ files. They are stripped down and modified so that DW can use them while building Spry pages in Design View. These are the files that allow the widgets to render in Design View and allows the panels to open and close on the Accordion, for instance. These design time files are only used by DW for it’s design work.

There are also copies of Spry files that are copied to the users folders when they add a Spry component to their site. These are the same files that you will find in the Labs download. At the time we were building DW CS3, Spry 1.4 was the current version and this is the version of the javascript and CSS files that DW outputs.

There are these 2 versions, design time and regular, for this reason. We wanted to be sure that the design time experience was separated from the regular Spry files. This would allow us to update the regular Spry files without possibly breaking Dreamweaver. The design time files will keep working no matter what version of the regular Spry files are there. This will allow periodic updates to DW so that Spry users can have the latest regular Spry files without affecting the performance of Dreamweaver. (If DW used the real Spry files for its design time work, we would have to rigorously test any update of Spry in DW. Having 2 versions saves us that trouble.

So, how to update DW to use the latest Spry files. Well, for the first few months, it was some tedious copy and pasting. It was a matter of finding the regular Spry files in the Configuration folder and just replacing them with the new ones. But the design-time files needed to be left alone. Some users were copying the Spry zip into the config folder and things were breaking left and right.

In the mean time, we were working on the Spry Updater for Dreamweaver. This is an extension that automatically updates the file in the Config folder for you. It also provides an interface (Site > Spry Updater…) that helps you copy these new files to your site. It also updates the code coloring and hinting for the new features.

But here was also another point of confusion. The Spry Updater does not add any new Spry features (widget, etc) to the Insert Panel. It simply updates the existing DW files to the latest versions. So now the Spry 1.4 accordion is now Spry 1.6. Since the HTML didn’t change, just the javascript, adding the new js file means that the accordion is automatically up to date.

It takes a lot of work, months actually, to add a new Spry widget to DW. That means that it is difficult for us to keep DW on parity with Spry. Spry has 16 widgets. DW CS3 has 8. Spry now has 5 datasets, DW has one. We are looking into ways to fixing that disparity…

So again, the updater doesn’t add new features to DW (except that command). It updates the existing features to the latest version. They only change is the version of the js and css files in the Config folder.

I should also mention that the Updater itself is a nice piece of work. It started out as a simple command for updating files and it is now a robust extension that can be used for updating site files for many things. Right now it is packaged as a Spry Updater, but extension developers can tune it to their own needs and make other kinds of updaters. It was a great effort by our Romanian team.

I hope this clarifies things a bit. Keep an eye out here for the widget preview!