Moving to Omnis Studio

Reasons

There are several good reasons for the adoption of Omnis Studio as a platform for the development of business applications.

"Classic" Phase-Out
Omnis Software International (OSI) does not plan to support previous versions of Omnis, up to and including Omnis 7.3.8, after 2001. It is possible to interface Omnis Classic and Studio applications side-by-side on the same database.


Web Technologies
The Omnis Web Application Server and WebClient plug-in make it easy to program various kinds of Internet or Intranet application.


Platform Support
Omnis Studio is the first "rapid application development" (RAD) tool to support the three main computer operating systems of importance today - Microsoft Windows, Macintosh and Linux. Applications can be developed on any of these systems, and then deployed across any others (assuming platform specific features, such as DDE, Appletalk etc. aren't used).


Future Development
At time of writing, I am evaluating Omnis Studio 3.0 Beta, which includes support for multithreading and client side execution within web applications, mobile connectivity with WAP, and upgrades to the development environment such as notation syntax checking.

Features

Omnis Studio, currently at release 2.4, continues to build on the strengths of Omnis as a tool for the rapid development of database applications with many new features.

Object Orientation
Omnis Studio implements an object oriented programming paradigm, to enable code re-use and maintainability.

Technology Support
Studio supports a wide range of current technology standards, such as the incorporation of ActiveX controls, Java beans, Quicktime streaming media etc. Independent developers are either offering or working on solutions for incorporation of COM+ and CORBA, enabling Omnis to fit into and make use of existing and planned technology combinations.

Database Support
As well as having its own ("native") datafile format, Omnis Studio supports a wide range of other data servers, such as OracleTM, Informix, Sybase and DB2 through drivers called Data Access Modules (DAMs). It also includes a DAM for ODBC, allowing connection to many compliant data servers, such as Microsoft's Access and SQL Server products. From Studio release 3.0, the API for programming DAMs will be public, and several new drivers (including OpenBase and MySQL) are rumoured to be forthcoming.

Studio vs. Classic

Studio inherits many of the features of Omnis 7, but there are several differences to get used to.

Performance
It's worth remembering that Omnis 7 was released in the early nineties, when the fastest computers used 486 processors. With the increase in performance of more recent computers, many newer software packages rely on more powerful hardware, and Omnis Studio is no exception. The development system loads and performs noticeably slower than Omnis 7 on the same computer. On modern machines and networks, this is not a problem, but it's worth considering clients with legacy systems (aka. old boxes) in planning the roll-out of a Studio solution.


Conversion
There is a fairly workable migration path for porting existing Omnis applications to Studio, but the process could not be described as painless. There is debate amongst developers as to the relative merits of performing as quick a conversion as possible, against taking the opportunity to use Studio's new features, and possibly even convert the application to use SQL data access. There are pre- and post- conversion routines to assist with the process.


Language
Although some commands and constructs (such as window control procedures) have become obsolete, and some (such as smartlists) have been added, the basics of the language are common to both Classic and Studio. Studio's development environment is a joy to work with, having such features as colour coded syntax, drag and drop support for notation, and superb debugging and find-and-replace tools. However, it's worth noting that the use of Omnis Notation (the $dollar commands) is more heavily emphasised - and more powerful - in Studio.


Subwindows
Along with the philosophy of allowing a more structured approach to application design, Studio allows developers to split window functionality into hierarchical units. This will be welcomed by any developer who's had to figure out a window with hundreds of overlapping fields and labels in Omnis Classic.

Studio vs. VB

Microsoft Visual Basic is the world's most widely used tool for the develeopment of Windows applications. Anyone who's ever written a macro in Excel, or incorporated some VBScript into a web page, has used it in one of its various forms. Visual Basic 6 has several points in its favour when it comes to writing applications, such as the availability of developers (Omnis being quite a minority tool in comparison). But Omnis is also a good choice in many situations.

At some Omnis developers conferences, sessions have been run comparing Omnis and VB. I'm not sure if the results could be considered impartial, but Omnis won.

Distribution
VB applications can be distributed at little cost to the provider, as they do not rely on a runtime license, as do Omnis applications. However, personal experience suggests that Omnis is often easier to distribute, as the runtime removes problems with DLL version control, which was VB5's major bugbear. And, of course, applications written in Omnis can run on non-Windows computers, such as Macintosh.


Web Development
Several of Microsoft's models for web development involve VB. These are discussed in the section on web development alternatives.


List Handling
Handling lists is of paramount importance to a database application. There is a saying amongst Omnis developers, that "Omnis Rocks!". When it comes to lists, this is true. The power of smartlists, SQL lists, $sendall, object lists and similar make it easier to handle such constructs than the VB equivalents - arrays, collections and recordsets.


Development Environment
This is really a matter of personal taste. The Omnis "command palette" takes a bit of getting used to when you've been keying code directly into a text window for a while. Omnis version of Visual Basic's "Intellisense" assistance (currently only in Studio 3.0 beta) is less powerful, but also less intrusive.


Database Connectivity
Again, it's a matter of different styles - VB's ADO against the Omnis DAM. VB has some nice visual data mapping tools. Of course, Omnis can connect to and modify an Omnis database - a considerable advantage if that's where your data is!


You can if you wish download course notes for a short introduction to Visual Basic for geographical systems users (presented by yours truly, of course).

Document prepared 8 AUG 2000 by Tim Stewart