Introduction
Part I--Analysis and Design
Chapter 1 Establishing Development Standards
- Why Develop Standards?
- Establishing Programming Standards
- Variable Naming Conventions
- Object Naming Conventions
- Code Formatting Conventions
- The Importance of Coding Conventions
- Developing GUI Standards
- The Seven Principles of GUI Design
- Developing Documentation Standards
- Which Methodology to Choose
- Working with Multiple Developers
- Using Version Control
- Integrating Visual FoxPro and Visual SourceSafe
- Using Visual FoxPro and Visual SourceSafe
- Why Use Version Control?
- Summary
Chapter 2 Analysis, Design, and Prototyping
- Introduction
- Procedural Systems versus Object-Oriented Systems
- Requirements Analysis and Specifications
- Problem Identification
- Requirements Analysis
- Object-Oriented Analysis and Design
- Creating a Prototype
- Using the Application Wizard
- Rapid Application Development
- Documentation
- Summary
Part II--Object and Coding Development
Chapter 3 Using Visual FoxPro's Debugging Facilities
- Introduction
- Role of Debugging in the Development Life Cycle
- Visual FoxPro's Debugging Tools--Up Close and Personal
- Configuring the Debugging Environment
- Debugging Environment Options
- Displaying Timer Events
- Additional Debug Options
- A Final Word on Setting Options
- Debugging Windows
- Activating the Debugger
- The Debug Window Toolbar and Menu System
- Controlling the Appearance of the Debugger
- The Watch Window
- The Trace Window
- The Call Stack Window
- The Locals Window
- The Output Window
- Other Debugging Tools
- The Breakpoints Dialog Box
- The Code Coverage Log
- The Event Tracking Log
- Assertion Testing
- Summary
Chapter 4 Integrating Visual FoxPro and Object-Oriented Programming
- Introduction
- What is Object-Oriented Programming?
- Understanding Object-Oriented Terminology
- Class
- Property
- Method
- Class Library
- Encapsulation
- Polymorphism
- Inheritance
- Subclass
- Class Hierarchy
- Containership Hierarchy
- Creating Classes with Visual FoxPro
- Creating Classes the Visual Way
- Creating Your First Functional Class
- Adding Methods
- Adding Code to Your Class
- Creating Classes with Code
- Summary
Chapter 5 The FoxPro Foundation Classes
- Introduction
- MAIN.PRG
- LIBRARY.PRG
- BASECLAS.VCX
- FORMS.VCX
- WIDGETS.VCX
- ACTIVEX.VCX
- HTML.PRG
- RASLIB.VCX
- OFFICAPI.PRG
- DATACLAS.PRG
- What the cusOLEDataServer Class Does
- Using the cusOLEDataServer Class
- Putting It Together
- The WWS Sample Application
- Modifying MAIN.PRG
- Creating Your Menu
- Creating a Data Entry Form
- Summary
Chapter 6 Communicating with Other Applications Using OLE
- Introduction
- Understanding OLE Terminology
- Object Linking and Embedding
- OLE Servers
- OLE Hosts (Clients)
- OLE Automation Sessions
- Creating an OLE Automation Session
- Linking to Excel
- Linking to Word
- Linking to SQL Server
- Linking to Access
- Linking to Microsoft Project
- Creating OLE Servers
- Defining an OLE Automation Server
- Creating a Visual FoxPro OLE Data Server
- ActiveX Controls
- Adding an ActiveX Control to Your Forms and Classes
- Subclassing ActiveX Controls
- Some Useful Subclassed ActiveX Controls
- Summary
Chapter 7 Using the Windows API
- Introduction
- What is an API?
- Guidelines to Follow When Using the Windows API
- Operating System Features
- Low-Frequency Calls
- Considerations in Making an API Call
- Performance
- Keeping Visual FoxPro in Control
- Getting Ready to Make API Calls
- Foxtools.FLL
- Set Library To Command and Foxtools.FLL
- Calling 32-Bit Functions Using Declare...DLL
- Another API Example: Getting a Universally Unique ID
- Summary
Chapter 8 Multi-User Development Techniques
- Introduction
- Concepts of Multi-User Development
- How Multi-User Conflicts Arise
- Factors to Consider in Resolving Multi-User Conflicts
- Visual FoxPro's Locking Strategies
- Basic Types of Data Locks
- The Essentials of Visual FoxPro Locking
- Summary of VFP Locking
- Row and Table Buffering
- Optimistic and Pessimistic Locking
- Buffering Behavior
- Common Actions on Multi-User Forms
- Building a Multi-User Form
- Exploring Multi-User Forms
- Summary of Row and Table Buffering
- Using Transaction Processing
- When Transactions are Needed
- How VFP Transaction Processing Works
- How to Code Transactions
- Summary of Transaction Processing
- Summary
Chapter 9 Creating Development Tools
- Introduction
- Understanding Visual FoxPro's Open IDE
- Understanding the Aselobj() Function and Creating Simple Builders
- How Builders and Visual FoxPro Interact
- How Visual FoxPro Calls Builders
- Creating Complex Builders
- The Lock Controls Builder
- The HelpContextID Recorder Builder
- The DB Reset Builder
- Creating Your Own Development Menu
- Class Browser Add-Ins
- Summary
Part III--Database Development
Chapter 10 Creating a Visual FoxPro Database
- Introduction
- VFP's Navigational and Relational Paradigms
- Types of Databases
- The Relational Model
- Navigational Processing in VFP with Corresponding Relational Commands
- VFP's New DBF Format
- How a DBF Stores Your Data
- VFP Data Types
- Null Values
- VFP's Relational Database
- The VFP Database Container
- Three Data Integrity Problems
- VFP Database Administration
- Summary
Chapter 11 Using SQL in Visual FoxPro Applications
- Introduction
- What is SQL?
- Understanding SQL's Structure
- Why Use SQL?
- Using the Data Definition Language
- Using Create Table
- Using Alter Table
- Using Create SQL View
- Using Drop Table
- Using Drop View
- Using the Data Manipulation Language
- Using Insert Into
- Using SQL Update
- Using SQL Delete
- Using SQL Select
- Summary
Part IV Application Deployment
Chapter 12 Client/Server Database Development with Visual FoxPro
- Introduction
- Client/Server from a VFP Viewpoint
- Three Types of Database Applications
- Client/Server Advantages and Disadvantages
- The World of SQL Databases
- How Visual FoxPro Accesses Remote Data
- How ODBC Works
- The ODBC Interface
- VFP Connections
- Remote Views
- SQL Pass-Through
- Data Translation
- How VFP Translates External Data
- How VFP Translates VFP Data to an External Source
- VFP and Microsoft SQL Server Data Translation Table
- The Limitations of Data Translation
- Summary
Chapter 13 Deploying Visual FoxPro Internet Applications
- Introduction
- Basic Internet Terminology
- Basic HTML Page Construction
- Creating a Basic Web Page
- Adding Bulleted Lists
- Adding Tables
- Adding Controls
- Creating Web Pages from Visual FoxPro
- Creating Your Own Browser with the Internet Control Pack
- What is the Internet Control Pack?
- Creating the Browser
- Using the VFP Internet Wizard
- Installing the Internet Search Page Wizard
- Hacking the Visual FoxPro Internet Server
- Tweaking SERVER.PRG
- Modifying the Internet Search Page Wizard
- Information from the Web
- Summary
Chapter 14 Deploying and Distributing Your Applications
- Introduction
- Creating an EXE File
- Using the Setup Wizard
- Are You Sure the Application is Ready for Distribution?
- Create a Distribution Directory
- Create a Disk Directory
- Locate Files
- Specify Contents
- Create Disk Image Directory
- Specify Setup Options
- Specify Default Destination
- Change File Settings
- Finish
- A Final Word on the Setup Wizard
- InstallShield
- Common Problems with Distributed Applications
- Beware of the Developer Machine Trap
- Remember to Include Graphics Files
- Remember to Include Your CONFIG.FPW File
- Make Sure to Include DDEREG.EXE for 16-bit DLL Calls
- Integrating Help in Your Applications
- How Help Works in VFP
- Help File Styles
- Help-Specific VFP Commands
- Creating a Help System
- The Help File Creation Process
- Integrating OURHELP.HLP into VFP
- Help on the Web
- Summary
Appendix
Index