Overview
Today's software applications are more capable and easier to use than ever
before. Yet as their feature sets have grown in complexity and size, they have
become increasingly difficult and costly to engineer, maintain, and upgrade.
Adding new features always runs the risk of introducing new, sometimes intractable
bugs and endangers backward compatibility with earlier versions. In addition,
most applications are monolithic, providing rich sets of features but no easy way
to add missing features or remove unneeded ones. Applications that do support
adding and removing features in the form of plug-in components may expose their
services to sibling applications from the same vendor but rarely to those from
entirely different vendors. As a result, applications from different vendors
typically work together poorly or not at all.
Operating systems have a related set of problems. Because most operating
systems are not sufficiently modular, upgrading, replacing, or overriding existing
services in a clean, flexible way is difficult. Like application developers,
systems vendors face the difficult choice of foregoing or compromising needed
improvements in order to maintain backward compatibility, or disenfranchising
existing users in order to move the technology forward. These are choices that serve
no one.
Software developers have recognized for some time that object-oriented
programming offers promising solutions to several of these problems. By encapsulating
data and functions in a single entity, then providing access to this rich
content through a single reference, or pointer, object-oriented programming makes it
possible to break down monolithic applications into functional modules, or
components, that can be added or removed as they are needed. Moreover, object-oriented
programming can potentially reduce the expense of implementing new objects by
enabling them, through mechanisms such as inheritance, polymorphism, and
aggregation, to make use of the capabilities built into already-existing objects.
Even so, object-oriented programming has yet to reach its full potential
because no standard framework has existed through which software objects created by
different vendors could interact with one another within the same address
space, much less across process, machine, and network boundaries. Once you have
broken down software into manageable, interchangeable components, you need some way
for those components to communicate. That's where OLE comes in.
OLE provides a standard conceptual framework for creating, managing, and
accessing object-based components that provide services to other objects and
applications. OLE components can exist as parts of an operating system or application,
or as stand-alone entities, and the services they provide can be most anything
that operating systems and applications currently supply. You can use OLE
components to expose both data and services to programs created by other vendors
and write your own applications in such a way as to take advantage of services
provided by others. You can also extend or customize basic OLE services to suit
the needs of your objects and applications while guaranteeing that they continue
to work with other OLE components.
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database