Monday, September 10, 2007

Rewrite: VDF or VB? VDF Advantages

VDF’s main advantage is speed of development. On a system that deals with large quantities of data, VB will probably require twice the coding time.

One example of this is in error handling. In VB error handling must be coded by hand.

Another example of “out of the box advantages” is the find messages of VDF. Coding “find first or last” is completely supported and coded by VDF into augmentable methods available at both the object and datadictionary class levels.

Overview: VDF is designed for data awareness in a completely scripted environment while VB is not designed as a data aware out of the box solution.

Second, VDF is completely in harmony with your current code base and data.

A conversion of DOS DataFlex to VDF can take your tried and true code and move it mostly intact into an OOPS VDF system dependably without reinventing the wheel.

A conversion of DOS DataFlex to VDF also has the advantage of being run simultaneously with DOS. You can phase the system in gradually instead of being an all out conversion. You can even use the same data tables as DOS until the conversion is complete, and then switch over to client-server when VDF passes validation and takes over the complete role from DOS.

VDF is a great front end for many databases: DataFlex, Pervasive, MySQL, DB2, Oracle, and MS SQL Server for example. The same program code will work, no matter what database you choose (or switch to).

VDF has a 30-year history as a development language designed for working with data. VB has data capability as an add-on. The first 2 versions of VB weren’t even database aware!

VDF has a light footprint. Complex systems can run tolerably well on 5+ year old computers. VB.net requires “power-user” type computers for all users to get reasonable performance.

VDF is truly Object Oriented. This type of programming makes development faster, cleaner, & more easily changed down the road. VB is “Object Based” – a partway implementation of the OOPs concept. One part of OOPs is “Classes”. These allow flexible extension of the controls that are used to display data.

· For example, suppose you want to color all fields that are indexed (& therefore can be used for finding). Add the code for doing this into the class, recompile & now every instance of every field that is indexed will be colored. In VB, this change could take weeks – finding every control & adding the code to it.· Another major advantage to this process is centralized coding. If, for instance, you wanted to change the color assigned to the indexed fields VDF can do this by changing one centralized spot, giving both great power to your code, and also making month-to-month maintenance chores a snap rather than a huge conversion job.

VDF has Data Dictionaries. DD’s are arguably the most powerful part of VDF. All business rules & much of the custom code go here.

· The advantage? As a very basic example, say you always want the Customer Name capitalized. Set this in the Customer DD. From then on, every view, dialog, etc. that uses the Customer DD will always capitalize the Customer Name.

· Two years later, you decide to allow lower case. Go to the DD, change it there & then recompile the application. Every place that uses the Customer Name (doesn’t matter if it’s 1 place or 100) will now allow lower case.

VDF’s Interconnected Data Dictionary Rule Base:

In a VDF application, the database table rules are coded [as above] with basic and advanced business rules. Example: The customer table has a globally applied rule that says the customer can’t go over their credit limit. When you combine the customer DD along with the sales order and lineitem DD, this is what you get:Customer

Sales Order

Lineitem

Now, when saving a new lineitem, the save operation cascades upwards to the customer table and any attempt to save a lineitem that puts them over the credit limit is denied!

VDF has interface features that make it far easier for the user:

Lookups: These are popup lists that (at the click of a button or press of a key) are set up to make finding easy. For example, to look up an order, you might show Order #, Date, Customer, Ship To, Total & Status. The user can really see what they need to do their job efficiently.

Indexing: Put the cursor in the Order # field & you can move back & forth through the table in Order # order. Put it in Order Date & you can browse by Order Date, etc. – no programming required (except creating the indices).

The VDF interface is designed for data entry:

The standard VDF application is MDI (Multiple Document Interface). This allows the user to have 2, 3 or more views of data open at a time, but the whole application can be minimized at one click of a button. It also puts menus and toolbars at the top of the application so they don’t have to be added to each view.

If your users prefer to navigate from field to field with the Enter key (instead of Tab) – add one line of code, recompile & you’re done.

Every action that you can do with a mouse, you can also do with a key or key combination. This means faster & easier entry for skilled users, while allowing the use of the mouse by users who prefer it.

VDF has backward & forward compatibility. An application written in version 9.1 will compile & run in 12.0 (5 versions later) with little or no changes to the code.

VDF pioneered teaming Windows applications with Web applications. A VDF WebApp can easily work with the same data (including the data dictionaries!) that your Windows system uses.

2 comments:

I have found this article very interesting and "convincing" wise. Do you mind if I translate it to Spanish and incoporate it in our web site (obviusly making the proper references to the author)?You see. in Spain there are many - a lot of- VB programmers and a ver small base of VDF programmers. As partners of DAWW we are trying to change that scenario and any information, article, ... etc comparing VB to VDF is very welcome. I have mentioned before that a publication/article/book like "VDF for VB programmers" would be of great help and a good "tool" to convert VB programmers.