Chapter 1: Introduction
Chapter 2: In the Beginning
Chapter 3: The Application
SET DEFAULT TO
SET PATH TO
SET CLASSLIB TO/SET PROCEDURE TO/SET LIBRARY TO
SET TALK/SET EXCLUSIVE
oApp = CREATEOBJECT()
A function launching mechanism
Flexibility during development
Chapter 4: Data - Keys and Indexes
What are keys?
Primary and candidate indexes
Compound primary keys
Surrogate primary keys
Visual FoxPro indexes
The roles that indexes play
Chapter 5: Data - Views
Views vs. queries
How views work in an application
That little something extra
Buffering and views
So what's the point?
Views in actionv cDMForm methods
The views used by the Time Card form
The old swaperoo
Cut to the chase
The View/Query Designer
The case for updateable views
Why would you exclusively use views?
Chapter 6: Rules, Triggers and Referential Integrity
Rule and trigger functions
What are rules and triggers?
Field and row rule behavior
Data modification using rules
Implementing referential integrity rules
The VFP Referential Integrity Builder
Referential integrity logic
Algorithms for cascading and restricting changes
The whole enchilada - a universal referential integrity function
All emptors be caveat!!
Other stuff to do with triggers
Chapter 7: Data Manipulation Classes
Common data manipulation requirements
Opening and closing tables and views
Detecting changes to data
Committing or canceling changes to data
Navigating through data
Providing data source independence
Data manipulation classes
The native Visual FoxPro classes
Crating your own data-manipulation classes
Detecting changes to data
Data management and views
Summary of data management
Chapter 8: Managing Business Logic -N-Tier System
What is n-tier system design?
What is business logic?
How is business logic different from data validation?
Building business logic enforcement classes
Abstraction of business logic into class design
Implementing business-logic classes into an application
What's the point?
Using ActiveX servers for business-logic objects
Chapter 9: Forms
Loose coupling and forms
Private data sessions
Sharing data sessions
Making the modal/modeless decision at runtime
Passing data between forms
Other issues with private data sessions
To form or not to form--running forms as object instances
Forms and delegation
Forms as business objects
Passing parameters in form methods
Chapter 10: Form Controls
The general use of form controls
CommandButton and CommandGroup
PageFrames and Pages
What about speed?
Misusing and abusing the controls
Chapter 11: Advanced Form Control Topics
Delegating to form controls
So tell me, which technique should I standardize on?
List objects--example of a reusable class
List objects--Alias and Fields RowSourceTypes
Setting visual properties example--ColumnWidths
Disappearing objects, multiple objects and composite objects
Timer-mediated program delays
The trouble with grids
Life without grids (well, almost)
Are grids still useful?
Is that all there is?
Chapter 12: User Interface Design - or - Selecting the "Best" Way to Present Information to the User
The three interface styles
Two major application categories
Why bother to classify applications?
Modeless vs. Modes and Modal vs. Non-Modal
Controlling edit/add/view functionality
User-initiated edit/view modes
Automatic edit/view modes
So what's the answer here?
Heads-down data entry
Keyboard vs. mouse, and buttons vs. toolbars vs. menus
Limiting the number of dialog boxes
Using the tabless PageFrame to provide multiple "views" of the data
Drag and drop
Native drag and drop
OLE drag and drop vs. native drag and drop
When is drag and drop a good idea?
Chapter 13: Manager Objects, the Non-Visible Application Objects
What are these non-visible objects?
Managing the activities of an application
The Visual FoxPro Application Wizard
Forms, Reports, and Advanced tabs
Visual FoxPro foundation classes
The Applications Wizard and the Application Builder
Classes tab of the Application Builder
Extending the foundation classes
Modifying the foundation classes
Subclassing the classes in the foundation class libraries
Using the hook methods provided in the foundation classes
Creating decorator classes
Creating mediator classes
Chapter 14: Developer Tools
Tips for effective use of the native VPF developer tools
The project manager -- use for file and class management
Form Designer tricks
The Class Browser
The Report Designer -- gaining printer independence
The Visual FoxPro editor
VFP debugging tools
Call Stack window
Output window and Event Tracking
Third-party developer tools
Stonefield Database Toolkit
Invest in your toolbox