capable than OLE, and it introduced other new concepts, like ActiveX controls. These
could directly compete with Java Applets. As for the difficulty of programming
OLE/COM; Microsoft expanded the MFC (Microsoft Foundation Classes) and VBRun to
take care of most of the dirty work. Although making an ActiveX application still was
slightly tricky in Visual C++, developing an ActiveX application in Visual Basic was
extremely easy. For this reason Visual Basic became the foremost ActiveX development
media.
The Internet revolution then posed new problems and challenges. C/C++ (which was the
tool of programming champions) was not suited or ready for Web Development. Microsoft
tried expanding MFC, and included several network oriented classes - like CSocket,
CASyncSocket, and several HTTP based classes. By using these classes a programmer
could very quickly develop a distributed application, but it took considerable effort. These
applications were also always customized and targeted to the specific task. The developers
had to take care of the gory network communication details themselves. By now
object-oriented analysis and development had started becoming ubiquitous. Although
technologies like Remote Procedure Call (RPC) was a great help to the programmers; it
was limited in its scope. For programmers following Object-Oriented development, RPC
was not much help at all as it did not allow the passing of objects as parameters. This
major issue was addressed by the introduction of industry agreed upon standards, like
CORBA, IIOP, RMI, DCOM etc. All these standards used customized protocols to
transmit an object over the network. They also required a tight coupling between the
server and the client - i.e. the client needed to be fully aware of how to talk to the server.
Due to this tight client-server coupling all these protocols needed considerable deployment
efforts in order for distributed applications to function properly. Sun did come up with
another layer on top of RMI - the famous Enterprise Java Beans (EJB). The EJB container
provided lot of services for free - all that a programmer had to do was to extend (inherit)
from an appropriate EJB base class, and there you have it - a fully functional distributed
application. EJB made programmer's lives considerably easier; but it did not eradicate the
client-server coupling issue.
Microsoft realized that upgrading their existing technologies would not work. What was
needed was a complete change in their philosophy. Historically, OLE was upgraded to
COM - and it was welcomed by all. COM was then upgraded to COM+. Microsoft
addressed the distributed programming issue with the introduction of DCOM. Although
COM/COM+/DCOM were all good technologies, they all required a significant learning
curve. Sun on the other hand was making things easier and so a majority of developers
were turning towards Java based technologies for distributed enterprise applications.
Microsoft got their programming gurus together and asked them to reflect back on their
Windows DNA and to come up with a future vision. This group came up with so many
new and great ideas that Microsoft realized that no amount of up upgrading or extending
of their MFC/VBRun/WFC, COM/COM+/DCOM, ASP, APIs etc. would even come
closer to realizing the possibilities of this new vision. So they made a radical but correct
decision - and this was the decision of coming up with something big, something new, and
something that let Microsoft overcome their legacy problems - the .NET Framework.
2–10