The SBJ MVC Framework
The MVC Framework is an MFC extension library providing a Model-View-Controller
architecture that integrates with the MFC Document/View architecture. It is designed to not
only be a foundation for newly developed applications written specifically to take advantage
of the MVC architecture, but also to be applied to existing applications without disrupting
the already present MFC Doc/View architecture.
It is far from complete, as it currently only addresses a handful of the UI components,
such as CView, CDockingPanes, CTreeCtrl, and CPropertyGrid, found in most MFC applications.
However, I consider the real power of the Framework is in the underlying design strategy.
By generalizing and abstracting those commonalities found in all software applications, the
Framework aims at minimizing the amount of code existing at the application level to that
which is unique to the specific application domain. The same strategy that is applied to
the current components of the Framework will be applied to new components that support Lists,
Grids, Forms, Reports, etc. The result of this will be the ability to decrease the amount
of time it takes to bring an application from inception to the marketplace.
To the left you can see a screen shot of a sample application, Shapes created using
the the Framework. To look at it, it doesn't seem all that remarkable, however I think you'll be
surprised to see how much of its functionality was due to the use of the Framework, and how little
application code was necessary.
If you are interested in learning more, over the past few months I have posted
the first three of a series of articles on Code Project describing the Framework. The first,
An Introduction to a Model-View-Controller Implementation for MFC, introduced the underlying
classes that integrate the Framework with the MFC Doc/View archictecture. The second,
The SBJ MVC Framework - The Model, from Abstraction to Realization, went into detail
describing the Model and how it ties into the MFC CDocument class to provide an abstract
interface to the Model's data source. And now the third,
The SBJ MVC Framework - The Design View, Responding to Model Change, goes into detail
describing the Design View and how it is driven by Model change and how the Framework
generalizes most of its functionality so that it can be leveraged with a minimum of additional coding at the
application level.