Accessibility
 
Home / Developer Center /  

JD's Forum

John Dowdell

John Dowdell

John Dowdell joined Macromedia in 1993 and listens to people in the online communities. He likes to make complex things simpler, and keeps a daily weblog of related news.

View Previous Columns

 
Question of the week: How well does the Pet Market blueprint application work for you?


This week the Macromedia DevNet includes a major project: the Pet Market blueprint application. It's a fully-documented small-scale commerce system that can be used as a blueprint for your own applications.

Will it be a blueprint for all web applications? No, but that's what I'd like to ask you in this week's discussion thread: How usable is this blueprint application for you? How can you see to improve it? How much is it worth to create additional blueprints?


You can use this blueprint application in various ways:

  • Use it as a learning tool, to check the basic frameworks and best practices in such an application;
  • Use it as a proof-of-concept for client discussions, to show the advantages of a smart client over older HTML-based web applications;
  • Use it as a boilerplate framework, just plugging in your own content;
  • Use parts of the blueprint for particular chores in your own applications.

There are other things this blueprint application does not even attempt:

  • It is not a general-purpose commerce system... the interface is set up for a finite number of categories, so it's not aimed at large catalogs;
  • It is not necessarily the most optimized application... the animation of bitmap scaling and opacity is an expensive design choice, for instance, and the external text requires loading at startup;
  • Although it attempts to show "best practices" in such a work, these principles are generally only discovered over time by many people, and so this example not the final definitive guide of the best way to always do things.

This blueprint application is a little different from the other documentation Macromedia produces, because it is focused on a single task, rather than a single application. Instead of describing how a piece of software works it describes a way to make a particular type of project. There's a great chance this won't be exactly the type of task you need to accomplish for a particular job, but we're hoping the principles are general enough so that you can get value out of it regardless.

(Where does the term "blueprint application" come from? I'm not sure. In the software world there are references to early project-planning tools, but I suspect it was used in the real world as a planning principle much earlier. These days the best-known blueprint application is likely the Java Pet Store from Sun, one of the many BluePrint Applications they offer. Microsoft sponsored a Microsoft .NET Pet Shop, which seemed optimized for performance rather than customization or learning. For a long debate about what a blueprint should do, see this discussion at ServerSide.)



If you use this as a proof-of-concept in client discussions, here are some things that might be useful for them to recognize:

  • The initial display takes a little longer to load than an HTML display would, mostly because the text is kept external to the presentation for easy updating and localization. The size of the display is fixed at 800 x 1000 pixels here, but your own work can be of varied sizes.
  • The load on the server can be significantly reduced when the visitor's machine does the processing. In a typical HTML web application the server gets hit whenever the visitor makes a choice — it must create a new page, and download the presentation layer and interactivity again. In this application only the data is sent when a category is changed. This approach scales up to large numbers of users better than an HTML display would.
  • The visual elements are separate from the logic which drives the application. A graphic designer can change the appearance without requiring recoding by a programmer. The client can change the text of the application with a simple text editor.
  • You can invest programming time to speed performance time. This example uses long descriptive coding names, opacity animations, general components rather than specific hand-coding, external loading and specific initialization routines... the balance between development time and playback time in this example doesn't need to match the performance you reach in your own implementation.
  • You'll likely see a higher percentage of completed sales. I don't have numbers to back this up, but many page-based commerce sites lose visitors before checkout, particularly when they have to wait for multi-page forms to download. This application functions more like a normal desktop application which remembers what you just did.


So... How close did we come to what you need here? Is this something you can use, something which rewards your time in reading and study? If not, why not? What types of optimizations would you consider for this in your own work? What is it worth to you to see similar big documentation projects in the future?

We're working on a dedicated forum for Rich Internet Applications, but I'm not sure if it will be done by the time this column goes live. Please drop a note in this week's "Soapbox" thread and I'll appreciate it, thanks!