Smalltalk and ObjectStudio
have enabled us to build a true small-business framework which we can reutilize and tailor for each new customer context.

Serge Lehmann, EBC Informatique Project Manager

Q&A Regarding Visual Wave Migration

Posted on in Categories Smalltalk, VisualWorks

Q: We are in the process of upgrading our web-based application from version 7.2 to 8.1. Our application is Visual Wave, GUI based.  We understand that some of the functionality was depreciated in the new 8.1 release, including Visual Wave. However, in the release notes, we noticed a comment about the possibility of reinstalling Visual Wave functionality.

We would like to know if it is still possible to re-install Visual Wave components into the 8.1 release or what would be the best approach/way to migrate our Visual Wave application into the 8.1 web framework?

A: We don’t have an official migration path. There are two options when it comes to migrating an existing Visual Wave application into VisualWorks 8.1.1:

  • Port a Visual Wave application in 8.1 without any changes.  The customer should be able to install Visual Wave from an obsolete component and run the application.
  • Switch from Visual Wave to AppeX/SiouX frameworks.

Switching to new web development depends on how the existing application generates HTML. A customer Visual Wave application can generate HTML pages in different ways, such as:

  1. Using Servlets where HTML is written manually into a stream.
  2. Using GUI widgets where each GUI widget knows how to emit itself as an HTML element.

In the case of Servlets, the migration path is easy. The application servlets have to change a super class only

from      VisualWave.SingleThreadModelServlet
to        SiouX.SingleThreadModelServlet

We ship SiouX-Servlet-Demo as an example of a ported VW application.

In the case of using GUI widgets, we think that it should be relatively easy to capture the HTML generated by Visual Wave and serve it as an AppeX service. Assuming that the HTML structure provided Visual Wave and by the ApplicationModel classes in a customer application is fairly static, this should be the least painful step. Of course, the dynamically generated contents of those HTML elements would have to be regenerated in a way that matches the current application.

Another option would be to write a custom SiouX responder that will serve as a dispatcher to invoke the different Visual Wave components, and let them generate the HTML code. However, this solution won’t bring many benefits because it will be an outdated HTML3 code, and we don’t plan any development in this area.