Basically it's a set of interrelated classes that you can use to build applications. These classes would be used for implementing application-specific (business) logic, presentation and (operating) system calls.
But what kinds of things should go into the framework? I would think classes to do string and file manipulations would be a good start. As would classes for logging errors to a file or database.
Depends on where you want that framework to work. If you are planning on creating a portable framework, it's a lot of work and requires excellent organization of the class hierarchies, all of them should rely on a single module (the system module) as transparent as possible, that is make your system library as virtual as possible, for example, allowing different implementations on different platforms for only the system library, leaving the rest un-touched. But this is a very big task and very time expensive (but... it's one of my favourite tasks, actually).
Anyway, a basic framework should provide some of the following abilities (random order):
File and string management, as you correctly stated;
Window Management (user interface), and that's one part that includes a huge number of related tasks, ranging from message-gathering classes (which depend strongly on the system you use) to the actual window drawing on the screen.
Your framework should provide as well the capability of definig controls and dialogs, just about anything you can see in a modern user-interface; Database support and lots of other things that depend on the capabilities you want to provide to that app framework.
An excellent example for this would be the MFC, to get the picture. I would highly reccomend a book - Proffesional MFC With Visual C++ 6, by Mike Blaszczak which covers in an excellent way the reasons why those guys who built the libraries done the things the way they did...
Hope this helps... [red]Nosferatu[/red]
We are what we eat...
There's no such thing as free meal... once stated: methane@personal.ro
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.