From the introduction to VFP on the Cetus Links at http://www.cetus-links.org/oo_visual_foxpro.html:
- Visual Foxpro is a dynamic object oriented language that supports multiple class libraries, a class browser. It provides programmable dynamic (run-time) subclassing, and data dictionary capabilities. Microsoft Corporation released Visual Foxpro in June 1995, shortly before the introduction of Windows 95. Similar to Visual Basic, Visual Foxpro (VFP) is a RAD tool that uses ActiveX visual components, and interoperates through OLE automation or by creating COM servers. VFP can also subclass ActiveX components and COM automation objects.
- Like Smalltalk, Visual FoxPro operates on dynamic inheritance. It instantiates classes from a library or from base classes. It can also modify and save classes - including contained objects into the class library at run time. VFP Wizards provide UML re-engineering and code generation with Rational Rose and Microsoft Visual Modeler.
- There are two major versions of Visual FoxPro: VFP 5.0 (and beyond), first released in September 1996, runs exclusively on 32-bit Windows operating systems. VFP 3.0 released in 1995, runs on 32-bit and 16-bit versions (Windows for Workgroups, 3.1, 3.1.1) as well as the Macintosh, but does not provide complete ANSI SQL or COM server building capabilities.
- Visual Foxpro is one of several OO 4GLs, languages that combine OOP and inheritance with native SQL and other relational database capabilities. These languages tend to treat simple variables, object properties, and table fields similarly, allowing operations that include all three. In addition to VFP, three languages: Visual dBase, Alpha 5 Pro, and Visual Objects were also "xBase" languages, meaning they evolved from dBase II/III. Visual dBase 7, from Borland International, now an object oriented language is the direct descendant of dBase. Visual dBase provides some interesting Java-like OO extensions such as string classes and methods. Alpha 5 Pro from Alpha Software is based on a xBase variant called "xbasic." Visual Objects, which evolved from Clipper, was the first xBase language to include object extensions. However, Centura, originally SQL Windows and prior to that, Superbase were the first 4GL on Windows and both now have OO extensions.
- Finally, PL/SQL from Oracle Corporation for Oracle 7 and Oracle 8 is also an OO 4GL. It is not based on xBase, and is a server language rather than a Windows client, but does provide both native SQL as well as classes and objects. VFP and other Windows clients interoperate with PL/SQL through ODBC and OLE Objects for Oracle (OO4O). (See Other OO 4GL Compiler / Interpreters).
What does all that mean?
Visual FoxPro (VFP) is a programming package sold by Microsoft. It contains a programming language, a database engine and an integrated development environment (IDE). An IDE allows programmers to do most of their work inside a single program. VFP has an excellent record of backwards compatibility so code that was written years ago can still be maintained and improved with a minimum of extra work. VFP is also a Rapid Application Development (RAD) tool which means that its design is focused on software built quickly.
Request for comments
What is VFP good at? What is it bad at? Give us some hard numbers to show to management if you can. CFK, I think you did a seminar on this in Chicago. Care to share some of your material? 2004-03-24 -- Tom Cerul
What is VFP good at:
What is VFP not good at:
- OOP RAD development
- Data Processing
- GUI front end in N-Tier Architecture
- Middle tier (Business Rules) in N-Tier Architecture
- As a COM client (Automation)
- As a COM Server
- Creating and consuming Web Services
- Fast processing of text
- Data munging
- XML: creating and consuming XML natively
What's the basic difference between FoxPro and Access.
- VFP is a professional-developer tool. MS Access is sold to and geared for end-users as part of MS Office.
- MS Access has a limitation on the number of concurrent users, number of records. Try 50 users with a 1-million+ table in both products and see the difference. (Hell, just try 10+ users and 50,000+ records and see the difference).
- VFP is an OOP tool, MS Access is not OOP.
- VFP has a rich language. MS Access uses a simpler subset of the old (deprecated) VB called VBA (Visual Basic for Applications).
- VFP can create and consume XML natively.
- VFP can create and consume Web Services (WSDL and SOAP) natively.
- VFP has a rich subset of the ANSI SQL language (better and improved in VFP 9.0)
- VFP can serve in any and all tiers on an N-Tier architecture. (not saying that it is the best tool in all cases and for all purposes in these roles but that it can easily and successfully be in any of the tiers).
What are the differences between FoxPro and MS SQL Server?
1. VFP is both a programming language and a database. SQL is just a database
Additionally VFP is very fast to perform on tables in an iterative manner, SQL is not, more a table scan type approach. Good indexing helps both equally. SQL has far better security and is better integrated with the OS. I have found that both are very good at high speed and high volumes. However if it were not for the lack of DB security in Fox I would use VFP DB's by default. Also SQL Server Licenses cost a bundle ! - VFP ones cost nothing (provided you are a runtime developer) - we all know cost is a factor.
VFP Tables are far easier to edit and manipulate, as the SQL Server Enterprise Manager is a bit clumsy in my opinion. SQL Transact SQL is also a bit messy and inflexible. A bit like building a toilet, then building the house around it. VFP DB commands are great (eg, browse etc etc). Date handling is far superior in VFP.
Actually one of the best Apps I ever developed was a hybrid of the two. It required secure high volume data and many lookup tables. I used SQL for a few of the more sensitive tables, and VFP for the over 40 lookup tables needed. All very seamlessly.
Really they are in different spaces, though. Put VFP in front and Middle tiers and mix a little with SQL at the backend. Cook until done, and you will have a very good cake.
Another request for comments
Have a difficulty to find more information and code examples regarding original Cetus description ( see below). Could anyone point out whether such a topic exists or explain what does that mean in general and what practical use of that.
- It provides programmable dynamic (run-time) subclassing
- Like Smalltalk, Visual FoxPro operates on dynamic inheritance. It instantiates classes from a library or from base classes. It can also modify and save classes - including contained objects into the class library at run time.
Michael Mitiaguin email@example.com
See also: Exposure To VFP, __ Visual Foxpro Description Copy Right Question
Category Development Tools Category Learning VFP
( Topic last updated: 2011.09.27 05:04:45 PM )