
|
Can database programming occur when you don't work much on the code level? Sure, the concept of graphical programming is a hot one, and its implementation shows a lot of promise when you look at visual Java programming tools from the likes of Symantec's Visual Cafe or Microsoft's Visual C++. Software companies love the idea, especially because there's the potential to market what's essentially a programming tool to nonprogrammers. Sure, graphical-programming tools are great for prototyping, but at some point you need to roll up your sleeves and get intimate with actual code, right?
Maybe not, if Fresco from Infoscape is any indication. Fresco 2.0 is an all-Java database development package designed to work with Oracle, Sybase, and ODBC database environments. Fresco hides the details of programming through a drag-and-drop graphical environment. It's remarkably easy to use -- indeed, it took a relatively short amount of time to create a Web-based front end to a database via ODBC calls. And while there are some limitations to this approach -- as you'll see later in this review -- Fresco is both a usable tool today and potentially a killer application for creating Java applets across an intranet, as soon as some of the kinks are worked out.
Fresco is actually a total connectivity package, consisting of the Fresco Designer and the Fresco Information Server. The Fresco Designer is the drag-and-drop rapid application development (RAD) tool for creating Java applications, which are run on Java-compatible Web browsers. The Fresco Information Server sits between the client browser and the back-end database, brokering database requests.
The focus on Fresco is really the Fresco Designer; middleware tools like the Fresco Information Server are becoming ubiquitous. If you've worked with Java at all, you know how difficult it is to master the graphical front end to Java-based applications -- it requires a great deal of expertise, experience, and patience. That's why Fresco is such a welcome development tool.
Creating an application is simple. After launching Fresco Designer, you're presented with multiple panes and multiple modules. There are four panes: a modules pane, the palette, the work area, and the table of contents. You initiate actions in Fresco Designer by selecting a module and dragging it to the table of contents. There are four modules: The Form module creates forms, the Controller Group manages containers for controls, the Custom Objects creates and manages customizable objects, and the Model Module manages connections to the database. For instance, you'd use the Model Module to set up a connection to what Fresco calls an adapter (which is a database driver), which in turn brokers the connection to the database. This is where you would specify the location of the adapter on the Fresco server, while also specifying the name, password, and data source on the database server.
Once you select a module, you can set its properties in a properties window. (See Figure 1. ) For instance, the properties for a button control its absolute position, color, text, font, and action (such as normal, toggle on/off, or mutually exclusive). Similarly, the properties for the aforementioned Model Module sets up information for both the Fresco Information Server and the database server.
This combination really shone when I created a user interface to our applications. As I've mentioned, creating Java graphical interfaces can be a real pain, but the Form module made this simple. You can drag and drop graphical-interface elements -- buttons, check boxes, text fields, text-entry fields, pulldown menus, radio buttons, and tables -- onto your work area. From there, you can change the size of the elements by dragging the boundaries of the elements, and you can move the elements around the work area as your needs change. While this is nothing unusual, it does make for a very usable graphical design tool.
However, it takes a little bit of time to get used to the Fresco Designer interface. Fresco Designer is written totally in Java, so it doesn't conform to either the standard Windows NT interface or the Sun Solaris CDE interface. You'll need to get used to using a mouse for everything -- Infoscape didn't bother including any keyboard shortcuts for any action within Fresco. And you'll need to spend some time getting used to its quirks, as in the following:
From the Model Module, you use the Controller Group to oversee the data moving between the data source and the user interface. This step is a little clunky, because logically the actions associated with a graphical element should be specified when you edit its properties. Instead, you need to switch to another window and look through a long list of actions, many of which have nothing to do with the element at hand. Smoothing this step would definitely increase Fresco's usability.
After I created my application, I saved it as a Web page and tested it in my Web browser. I also had the option of publishing it as a Marimba Castanet "push" channel. This is a major bonus for Fresco. In a nutshell, push technology in an Internet/intranet setting allows information to be "pushed" to desktops on the network, allowing them to be data receivers. The users have to do little work to receive the information. Creating content for push technology tends to be somewhat of a mystery and is just now emerging in the Web database market. However, including the ability to generate Marimba Castanet content from within Fresco Designer is a shrewd move: It makes Fresco a valuable tool in an intranet setting (which is the true market for this technology), and it gives Fresco a hook that distinguishes it from competitors.
Publishing the applet as a channel was ridiculously simple. A Publish Wizard publishes the applet as a Castanet channel directly to a Castanet Transmitter, complete with all the files in your presentation directory. In addition, all of the Infoscape classes are automatically sent along to the transmitter.
I used it to connect to a database via an ODBC connection, and for the most part creating the front end was easy enough, although the documentation was on the obscure side and I relied a lot on experience with ODBC. (I did not test Oracle and Sybase connectivity.) This may be a case where the experience isn't actually suited to the product: The entire point of using a product like Fresco is to allow nonprogrammers to create Web database front ends, but it takes experience with programming to configure the database connectivity.
I did run into some limitations with my sample application, however. You can't use third-party Java controls with the interface, as Fresco doesn't yet support JavaBeans (support for it is promised for the future, as is support for the JFC windowing toolkit). You can, however, use third-party Java classes, so long as they are called by Fresco Java controls.
The Fresco package includes Fresco Designer, Fresco 2.0 Product Documentation, Fresco Demo Application, Sybase SQL Anywhere RDBMS, Adobe Acrobat, Javasoft JDK 1.02 and 1.1.3, and the Apache Web Server.
I looked at Fresco Designer in the Windows NT environment, although it also ships with Sun Solaris binaries. The documentation warns that there are some slight interface and procedural differences between the two versions -- which seems slightly unusual, considering that a major selling point of Java is that it works the same on any operating system -- but for the purpose of this review, I'm assuming that there's very little difference between the Windows NT and Solaris versions.
There's one nagging problem with Fresco -- its price. You're looking at an entry-level cost of $4,950 for two developer seats and a single database adapter in the Pilot Package. When you look at the entire package and realize that two of the core components are available free of charge via the Internet (the Javasoft JDK and the Apache Web Server), it seems like Fresco is way overpriced for what you actually get, especially when compared to Symantec Visual Cafe and other non-Java-based graphical programming environments. As it stands, Fresco might not be appropriate for larger, more complex applications yet, but it seems rather pricey for down-and-dirty front ends.
Still, Fresco might fill some RAD needs in your enterprise, and it really is simple to use. I'm somewhat skeptical about using it to create industrial-strength applications across the enterprise, since it seems more suited to creating simpler fronts ends into single databases rather than performing extensive searches across multiple databases that need to be manipulated (sorted or combined) on the user's desktop. At some point, you'll probably need to roll up your sleeves and get down to the code level to get some powerful performance out of Fresco. But as a RAD tool that can easily create some gorgeous interfaces in Java -- an accomplishment that should not be underestimated -- Fresco can be a useful addition to your enterprise/intranet development environment.
