The Visual Component Framework (VCF) is an abandoned open source project for development under Microsoft Windows and Apple Macintosh that is distributed under the BSD license. It is an advanced C++ application framework that makes it easier to produce GUI-based C++ applications. The framework is C++ design and has built in support for rapid application development. The framework is designed to be portable over multiple platforms and compilers. The framework runs under Windows and Mac OS X, but as of April 6, 2006, the Mac port was incomplete, and a Linux port was still pending. The project has made a large effort to support a variety of compilers and Integrated Development Environments (IDE), allowing the developer to work in whatever IDE/compiler they prefer. Compiler support on Windows covers Microsoft Visual C++ versions 6, 7, 7.1, and 8, along with the Borland C++ Compiler, the Intel C++ Compiler, and GCC. On Mac OS X GCC is supported using the Xcode IDE. A CodeWarrior port was completed, but stopped due to CodeWarrior dropping support for their x86 version of the compiler, and later for their PowerPC version as well. License The framework is licensed under the BSD license for any platform it runs on. Design and Goals The framework is designed with several goals in mind. One is the ability to be ported to other platforms beyond Windows, such as Mac OS X, BeOS, or possibly even embedded operating systems like Windows CE. The next goal is to provide solid support for dynamic programming such as that found in languages like Borland's Object Pascal, Java, or Objective-C. This included RTTI or reflection like classes that allow the developer to query all sorts of information about a given class instance at runtime. Another goal was to design the UI classes so that visual programming or rapid application development was possible, similar to what is found in Delphi. This includes support for property editors, component editors, persistence of the UI state to and from an external text file, and making use of the dynamic features to create class instances on the fly and get and set the instance's registered properties. In addition to this, the last goal was to provide support for a large number of common programming tasks when developing an application, particularly for larger scale applications. This includes support for various kinds of IO (in memory, file/disk, and so forth), thread support