Visual Component Framework

Visual Component Framework

Infobox_Software
name = Visual Component Software



caption =
developer = [http://vcf-online.org VCF]
latest_release_version = 0.9.0
latest_release_date = April 8, 2006
operating_system = Windows/Win32, Mac OS X/Carbon (API)
genre = Development Library
license = BSD
website = http://vcf-online.org

The Visual Component Framework (VCF) is an 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 based on a thoroughly modern 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 the OS X port is still ongoing as of this writing. Current efforts are also underway to port it to Linux.

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's Visual C++ versions 6, 7, 7.1, and 8, along with Borlands 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 and various synchronization primitives like mutexs, semaphores, and conditions, Unicode string support, locale and internationalization support including localizing string resources, comprehensive resource support, and basic XML parsing. Graphics features include anti-aliased graphics using the Anti-Grain Graphics Library, full affine transformation support, images with direct access to the image's pixel bits. Additional application support features also include undo/redo classes, advanced support for Model View Controller.

As a general rule, the framework makes as much use as possible of the Standard Template Library, avoiding duplication of work on things like container classes, or string handling.

Where possible the framework builds on top of the native C++ RTTI support such as using dynamic cast and typeid, as opposed to simply re-implementing it.

Most OS objects, such as files, threads, graphics devices, and window controls (or widgets), and so on, are implemented using a thin layer that talks directly to the specific native object. UI controls are not emulated for the most part, instead the framework uses native widgets in most places. Direct access to the underlying OS "handle" is allowed in cases where platform specific functionality is needed, allowing the developer to easily call the platform's native APIs.

See also

* Software component
* Widget toolkit
* List of widget toolkits
* Qt
* wxWidgets
* Motif
* GTK+
* Gtkmm
* FLTK
* FOX toolkit

External links

* [http://vcf-online.org/ The Visual Component Framework homepage]
* [http://vcf-online.org/docs/ref_manual/ The VCF Reference Documentation]
* [http://vcf-online.org/docs/src_manual/ The VCF Source Documentation]
* [http://vcfbuilder.org/ The VCF Builder homepage]
* [http://www.antigrain.com/ Anti-Grain Graphics Library]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Look at other dictionaries:

  • Visual Component Library — Запрос «VCL» перенаправляется сюда; см. также другие значения. Библиотека визуальных компонентов (англ. Visual Component Library, VCL)  объектно ориентированная библиотека для разработки программного обеспечения, разработанная компанией …   Википедия

  • Visual Component Library — (bibliothèque de composants visuels), abrégé VCL, est un framework écrit en Pascal Objet par Borland pour ses outils de développements Delphi et C++ Builder. La VCL est souvent appréciée par ses utilisateurs pour sa grande clarté et sa cohérence… …   Wikipédia en Français

  • Visual Component Library — VCL (Visual Component Library) is a visual component based framework for developing Microsoft Windows applications, developed by Borland for use in its Delphi and C++ Builder software development environment. It is written in Object Pascal. Much… …   Wikipedia

  • Component Library for Cross Platform — (CLX) (pronounced clicks), is a cross platform visual component based framework for developing Microsoft Windows and Linux applications. It is developed by Borland for use in its Kylix, Delphi, and C++ Builder software development environment.… …   Wikipedia

  • Component Object Model — Not to be confused with COM file. Component Object Model (COM) is a binary interface standard for software componentry introduced by Microsoft in 1993. It is used to enable interprocess communication and dynamic object creation in a large range… …   Wikipedia

  • Component-based software engineering — A simple example of two components expressed in UML 2.0. The checkout component, responsible for facilitating the customer s order, requires the card processing component to charge the customer s credit/debit card (functionality that the latter… …   Wikipedia

  • Framework — Ein Framework (englisch für „Rahmenstruktur“ oder „Fachwerk“) ist ein Programmiergerüst, das in der Softwaretechnik, insbesondere im Rahmen der objektorientierten Softwareentwicklung sowie bei komponentenbasierten Entwicklungsansätzen, verwendet… …   Deutsch Wikipedia

  • Visual Basic .Net — Basisdaten Paradigmen: prozedural, vollständig objektorientiert Erscheinungsjahr: 2002 Entwickle …   Deutsch Wikipedia

  • Visual Basic 6.0 — Visual Basic .NET Basisdaten Paradigmen: prozedural, vollständig objektorientiert Erscheinungsjahr: 2002 Entwickle …   Deutsch Wikipedia

  • Visual Basic Classic — Visual Basic .NET Basisdaten Paradigmen: prozedural, vollständig objektorientiert Erscheinungsjahr: 2002 Entwickle …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”