Tools

A tool, by definition, is a means of extending my capabilties. Note that, just as I need certain capabilities before I use a shovel successfully, I also need certain capablities before I use a software tool successfully. That said, here are some tools I use.

Frameworks

A framework is something most other languages (other than VFP) have little choice about: you get what comes with the product and that's that. VFP for whatever reason, has 5 not counting the 'sample' framework with comes with VFP5. The 4 commercial frameworks are Visual FoxExpress Visual Extend Visual MaxFrame Professional, and Visual ProMatrix. Each has it's good points. I own all but Visual Extend, which isn't to say that it isn't worth using, just that it didn't seem to fit my needs. Each of the frameworks has its strong points; if I could roll all those good qualities into one framework, I'd still be short of what I want in a framework, but I'd sure be happy about what I had.

A framework solves problems you don't know you have; it provides 100's of sites to test the underlying code which runs in your programs; it saves a lot of time. You can write your own framework, but then you forego having 100's of sites testing your code, and you end up putting a lot of time into stuff you could buy. So, I use other folks frameworks, and add my own stuff to it.

I work primarily in Visual ProMatrix. There are some things about it which are not my style, but other things, e.g., the idiosyncratic IDE, actually has grown on me. Frank Camp and I have created a major sublclassing of the VPM classes, in order to implement additional functionality. That's why one has objects of course, in order to be able to subclass. These subclasses, and additional supporter programs, are available in a one-year subscription as the PSP Libraries Course, through the ProMatrix sales site.

Database Modelling

Database Modelling is essential in any project over a few tables. I use xCase Professional for many reasons. It is extensible (e.g., I have added extra attributes to Fields, so I can put information in the Field entry I want to import into VPM) and Elie Muyal, the developer, provides really great support. The biggest reason, though, is that it stores its data in DBF's, which was we all know is where nature intended that data be stored. To that end, we have created xCase2VPM, a tool that moves metadata from xCase to VPM's data dictionary. Along the way we have added additional attributes, and integrated the entire process into the ProSysPlus subclasses of the VPM Class Libraries. For an example of the power of the 3 tools, plus the subclasses, take a look at at this movie, which shows an application being created and then moved to client-server.

Web Applications

There are also many Web application frameworks in VFP. The one we use is Web Connection from Rick Strahl's West Wind. Faster than ASP (or ASP.NET), able to integrate directly with VFP (we instantiate the VPM application object directly on the Web Connection object, eliminating COM overhead), and possessing all the little pieces that make development faster and more foolproof are good enough reasons for picking Web Connection. The reason we use Web Connection, however, is that Rick is the most knowledgeable person we know in the area of VFP Web applications, including IIS setup issues, and the support he provides is superb. There are other good VFP Web Frameworks: I know of successful projects in Active FoxPro Pages and in FoxWeb, for example.

Process Modelling

Modelling business processes is potentially important for any decent-sized project. I've got some new software, Inspiration, to try out, and I'll let you know how it goes. It takes an outline and turns it into a diagram. Potentially very cool. The support person I talked with was pretty unfriendly (I inquired about getting a different symbol library, and he reacted as though my dog had just dirtied his front yard). But I shouldn't need tech support, so that's not an issue here.

I've looked at the stuff that is supposed to take a business process and turn it into a database structure, and I'm not terribly impressed. It's one thing to thing that Booch had a great idea in thinking that objects and processes are a great way to chunk complex systems so they become understandable. It's rather a large leap to conclude the UML (Universal Modelling Language) is the answer to your dreams. We'll see. What I've found most important is to create a means for the client's unarticulated knowledge to become visible to both me and the client.

.NET Development

.NET development is hindered by the immaturity of the tools. With one exception, the frameworks are primarily code generators. The exception, quite naturally, comes from the VFP camp: Kevin McNeish's Mere Mortals Framework for .NET. Kevin's book on .NET for VFP programmers is superb (www.hentzenweke.com): he began by class diagramming the .NET framework himself. His .NET framework manages complexity through subclassing, which is the VFP way of managing complexity.

Linux Development

There are getting to be good development tools for Linux. The challenge is in the area of controls, actually: the VFP grid is better than any grid I've seen for Linux-based applications. One framework, though, is of special interest to VFP users: BlackAdder from theKompany.com, a combination of Python (probably the best programming language for VFPers to move to, if moving) and the Qt toolkit. The bad news is that the full Qt toolkit is expensive (around $2K per developer); the good news is that when using BlackAdder, you don't have to buy the full Qt toolkit. Technically you can create a Windows application from BlackAdder: but why would you want to when you have VFP?


Last Updated: Sunday, 28 September, 2003 17:50
©2000 Professional Systems Plus (ProSysPlus). All rights reserved.
To ask questions regarding this page please contact webmaster@prosysplus.com