![]() |
ICF 3.0.5.47
Technical documentation of ICF Libraries
|
ICF is a C++ based, cross-plattform component framework, that was especially designed for creation of complex, customizable and highly scalable applications. ICF follows the component-oriented programming paradigm and provides instruments to build software from reusable components and serves interfaces and concepts to create those components. ICF contains a set of libraries with implementations of most usefull design patterns, such Serialization, Model/Observer, Factory, Dependency Injection etc.. ICF implements a powerfull component concept and includes many well designed components, which you can directly use in your application. The UI-part of the framework is based on Qt library provided by Digia. ICF is open source and released under the terms of the GNU Lesser General Public License (LGPL). See http://icf.paperus.de or write witol.nosp@m.d.ga.nosp@m.ntzke.nosp@m.@pap.nosp@m.erus..nosp@m.de for further information about the ICF.
More theoretical considerations about the component-based development can be found at the following location: http://en.wikipedia.org/wiki/Component-based_software_engineering
The main idea behind ICF is to see each software product as a composition of components with clearly defined interfaces. Interface is also the only way for communication between components. The usual steps to implement a component are:
To keep the management component packages consistent, all kind of packages have the same file extension - ARP (ICF Registry Package).
If all the necessary components have been implemented, the application can be executed. There are two basic ways. A composition of components can be run directly by Framework-Runtime. However, this mechanism is usefull only in the prototyping stage. For the final application a different approach can be used. ICF provides a special source-code generator, which makes it possible to produce source code back from component compositions. The resulting source code is then compiled by the usual way. This has the advantage that during the runtime of the application no modules (DLLs) must be loaded.
Below are some of the main features of ICF:
© Witold Gantzke and Kirill Lepskiy