This article is part of an ongoing discussion about using Microsoft's Active Server Pages to develop web-based applications. This installment focuses on using objects or, more specifically, using object-based technologies within the context of Active Server Pages to create extensible web application frameworks based on reusable component software.
A Brief History of ObjectsEverything is an object. Although I often doubt the validity of this statement, it has echoed inside my head ever since I wrote my first SmallTalk program back in the 1980's. Although some things are definitely better modeled as objects than others, the power and flexibility of the object-oriented style of programming is hard to resist when creating large-scale enterprise applications.
Experiences do vary, however. Early in my career, myself, along with droves of other object followers, often built some of the most beautiful hierarchies of classes, attempting to squeeze every reusable byte out of every object ever instanced. Sometimes we found that even the most perfect set of classes yielded in code what the most perfect mixing of genetics often yields in real life - a weaker offspring.
There were obviously many things that contributed to the effectiveness and unfortunately, the ineffectiveness of early object-oriented programming techniques. By the time you derived a new class of object from an existing base class, you had probably involved hundreds, if not thousands of lines of code. A minor change to a base class sometimes caused a cascading set of complexities, also known as bugs, in all its derived classes. We came to describe them as fragile base classes - that is, source code, that when touched, would shatter our entire object model from the bottom up. Source code, or the proliferation thereof, was often our enemy.
Language reusability was another problem. Classes defined by even the most brilliant SmallTalk programmer were of little or no use to the C++ or Basic programmer. Even when compiled into their respective binary forms, object-based programs had really very little cross-platform or cross-language capabilities. Components as we know them today were mostly restricted to existing within a single language or as a totally separate executable.
These limitations of early object programming has over time led to architectures designed specifically to exploit objects from another perspective, one that doesn't depend on source code for its reusability. These architectures accomplish re-use at the binary level. These architectures include widely know implementations such as CORBA, or, the Object Management Group's Common Object Request Broker Architecture, and COM, Microsoft's Component Object Model, to name two.
Page 1: A Brief History of ObjectsAuthor: Keith Cox
Date: 12/29/97
More articles about Active Server Pages
More articles by Keith Cox
Author Biography