I've been developing database applications for more years than I care to admit. I'm about to share my best database secret with you.
If you go to Microsoft's database seminars, those all-day sales presentations about how to use Microsoft products to build databases, you won't hear a word about FoxPro. I can't say why Microsoft doesn't mention FoxPro, but go to one and see for yourself. No F-word.
That's my secret:
FoxPro was born to do data. It contains dozens of little database functions that you'd have to write for yourself in VB or VC++, so you end up writing half the code, or less, than you would in VB. It's fast--and you don't know what fast means until you've seen FoxPro in action. And its native tables, far from being a drawback, are the key to building single workstation and small LAN applications without using a SQL server that adds cost and administrative complexity to your application. It can handle hundreds of thousands of records with no perceptible slowdown in performance; and beginners can be up and running in a fraction of the time it takes to become a good VB database programmer. It's easier to learn, simpler to code, and runs faster: What's not to like?
FoxPro is object-oriented. When you open up the form designer in VB, you have a palette of components that you can drag and drop onto the screen. In Visual FoxPro, you can replace the top dozen components--textbox, command button, listbox, and so on--forth with your own classes in less than 60 seconds. Thereafter, changing a property or behavior of any one of your classes--which takes only a few seconds--automatically flows through every single form in your application. You can do something similar in other languages, but you absolutely can't do it so quickly and easily.
FoxPro is robust. As a consultant to software developers, I've written applications for my clients that have gone on to become well-established commercial products, competing with programs written in VB, C and other languages. My clients can add features or fix bugs in a fraction of the time their competitors require, because FoxPro is so easy to use. It's easy to stay ahead of the market when your competition has to work twice as hard to write code to accomplish things that are simple in FoxPro.
FoxPro is flexible. You can build ActiveX Documents or OLE servers for environments where running an application continuously isn't desirable or practical. If your ISP doesn't want to be responsible for keeping your program running on their Internet site, write it as an OLE server. You can build COM objects for 3-tier applications, using HTML as your front-end and FoxPro tables or MS-SQL at the back end, and use MTS to manage your connections. Or use ODBC to talk directly to your DBF tables. You have just as many choices with FoxPro as with any other language, plus a few more that are faster and easier.
FoxPro is an ideal front-end for MS SQL or Oracle. It connects seamlessly to either, with no programming. That wasn't a misprint: No programming. FoxPro parameterized remote views can be designed to subset your data without a single line of specialized code. You won't find a better language for SQL server applications. However, before you commit to a server product that's licensed by the seat and requires a database administrator, consider using local tables and FoxPro. Given its speed, 90% of database applications can probably be run with local tables on single workstations or small LANs, where the FoxPro DBF format is just right. Gosh, Microsoft would lose a lot of MS-SQL sales if that were widely known...
If you've already tried to build database applications in another language, you're in for a pleasant surprise. FoxPro development typically takes about half as long as it does in VB, and it's much easier to learn. I can't say why Microsoft doesn't include FoxPro in its database seminars. Perhaps it's a secret. Maybe it's hidden in this article, like an anagram. But you already own FoxPro, so give it a test drive. You'll be impressed.
About the Author
For over 20 years, Les Pinter has specialized in the development of LAN- and Web-enabled database applications and is the author of six books and hundreds of journal articles. Visit Les Pinter Database Development at http://www.lespinter.com/.
For More Information
- What do you think about this tip? E-mail us at editor@searchDatabase.com with your feedback.
- The Best FoxPro Web Links: tips, tutorials, scripts, and more.
- Have a FoxPro tip to offer your fellow DBA's and developers? The best tips submitted will receive a cool prize--submit your tip today!
- Ask your technical FoxPro questions--or help out your peers by answering them--in our live discussion forums.
- Check out our Ask the Experts feature: Our gurus are waiting to answer your toughest questions.
This was first published in October 2000