Detailed Table of Contents (PDF) here
Complete Index (PDF) here
Chapter 1 - Introduction
What is a framework? This chapter answers that question and explains why you should, and should not, develop your own framework.
Chapter 2 - Project Planning
Framework development is a complex activity requiring thousands of decisions. Taking the time to formulate your expectations and plan your development efforts is essential to successfully completing a framework. This chapter highlights the key documents that will help you organize and plan your framework.
Chapter 3 - Framework Architecture
The architecture of a framework is a conceptual model of the major framework components. In this chapter you will learn what comprises a system’s architecture as well as take a first “high-level” look at the architecture of the sample framework developed throughout this book.
Chapter 4 - Techniques for Flexibility
Flexibility can mean a number of things to a developer. To a framework developer, flexibility boils down to this: “Will a developer using my framework be able to accomplish what he or she needs to accomplish without having to hack the code?” This chapter covers some of the primary techniques and patterns you can use to add flexibility to your framework.
Chapter 5 - Beginning Development
The success of your framework depends upon the ability of the application developer to create fully functioning applications. Focus on quality and productivity. Ultimately those are the criteria on which your framework will be judged.
Chapter 6 - Creating a Class Library
A class library is a set of reusable classes, programs, and functions. It is the foundation, the lowest level on which your framework is built. Factors to consider when structuring your class library include creating a single point of entry into the framework, the role inheritance plays in extending behavior, and enabling the application developer the ability to tap into the power of your class library. This chapter illustrates how to properly structure your class library.
Chapter 7 - Environments and Sessions
Understanding the concepts of an application environment, data sessions, and data environments is critical to obtaining consistent results throughout your framework. Environments and sessions affect the behavior, and ultimately the design, of your classes. This chapter reviews environments, sessions, and the tools that manage these items in the MyFrame framework.
Chapter 8 - Collections
Collections are common components in most frameworks and class libraries. Although collections are not required for many programming tasks, they are invaluable to a framework developer. In this chapter, you will learn about collections in detail and how to build a Collection class.
Chapter 9 - Cursor and CursorAdapter
Visual FoxPro 8.0 provides the Cursor and CursorAdapter classes to read and write data from a database. These classes represent the data connection layer in a tiered framework. The Cursor class is optimal for accessing FoxPro data, while the CursorAdapter class offers new and exciting ways to work with a variety of data sources. In this chapter, you will extend the Cursor and CursorAdapter classes to create a fully object-oriented approach to working with data.
Chapter 10 - Business Objects
Business objects are the “heart” of an application. In practice, business objects are the classes that hold most of the application developer’s code. As you can imagine, a business object must be flexible and easy to use. In this chapter, you will learn how to coordinate the mechanics of reading and writing data (presented in the previous chapter) so that developers can focus on the “fun” part of developing an application, namely the application’s logic.
Chapter 11 - Framework Services
A framework service is the name I use to refer to classes that exist to service one or more classes in the framework. This chapter looks at some of those services and how they are constructed.
Chapter 12 - Forms
Complicated business logic and pretty reports have little impact on users that work with your systems. To some users, the forms are the application. The application developer is responsible for making the forms aesthetically pleasing. You are responsible for making them functional. This chapter shows you how.
Chapter 13 - Data Entry Forms
Finding and editing information is essential to a data-based system. This chapter shows how to control when and how users access information, and how to coordinate the editing process.
Chapter 14 - Toolbars
Toolbars are used to manipulate forms and provide easy access to system-level functions. Coordinating the interaction between toolbars and other framework classes can be a bit of a challenge. In this chapter, you will analyze the relationship between toolbars and other framework elements and develop an approach for coordinating their interaction.
Chapter 15 - Error Handling
Unfortunately, errors happen. Worse, you never know when or where an error will happen. After all, if you knew where the error was, you would have fixed it. This chapter presents a generic, customizable error handling routine that you can use as the starting point for your error handler.
Chapter 16 - Security
Applications require differing levels of security, including none at all. In this chapter, you will review an approach for implementing security and have a better understanding of how to incorporate security into your framework.
Chapter 17 - Developer Tools
Developer tools are an integral part of any framework. In this chapter, you will see tools that help you develop your framework as well as tools that assist developers as they build their applications.
Chapter 18 - Starting New Projects
Starting a new project is always an exciting time. But the enthusiasm can quickly fade when you think of the many steps required to set up a new project. In this chapter, you will see examples of how to start a new development effort while using a framework.
Chapter 19 -Sample Application
This chapter brings it all together, illustrating step-by-step how to create an application using the sample framework developed throughout this book.